Python爬取网址中多个页面的信息
通过上一篇博客了解到爬取数据的操作,但对于存在多个页面的网址来说,使用上一篇博客中的代码爬取下来的资料并不完整。接下来就是讲解该如何爬取之后的页面信息。
一、审查元素
鼠标移至页码处右键,选择检查元素
接着屏幕下方就会出现对应的html语句
二、分析html语句与项目要求
本次项目是爬取所有信息,根据第一步中的html语句,我们有两种爬取后续页面信息的方法:
方法一:循环访问本页面中的“下一页”链接直至该标签为空
即
def next_page(url):
soup=get_requests(url)
draw_base_list(soup)
pcxt=soup.find('div',{'class':'babynames-term-articles'}).find('nav')
pcxt1=pcxt.find('div',{'class':'nav-links'}).find('a',{'class':'next page-numbers'})
if pcxt1!=None:
link=pcxt1.get('href')
next_page(link)
else:
print("爬取完成")
方法二:获取总页数,通过更改url来爬取后续信息
通过html语句可以看出不同页数的url只有最后的数字不一样,而最后的数字就代表着这个url中的信息是第几页的信息。
页面中的html语句给出了总页码,我们只需要定位至该标签并获得总页数即可。
即
def get_page_size(soup):
pcxt=soup.find('div',{'class':'babynames-term-articles'}).find('nav')
pcxt1=pcxt.find('div',{'class':'nav-links'}).findAll('a')
for i in pcxt1[:-1]:
link=i.get('href')
s=str(i)
page=re.sub('<a class="page-numbers" href="','',s)
page1=re.sub(link,'',page)
page2=re.sub('">','',page1)
page3=re.sub('</a>','',page2)
pagesize=int(page3)
print(pagesize)
return pagesize
pass
获得总页数后这个模块还没有结束,我们还需要更改url来访问网址,也就是主函数的编写:
if __name__ == '__main__':
url="http://www.sheknows.com/baby-names/browse/a/"
soup=get_requests(url)
page=get_page_size(soup)
for i in range(1,page+1):
url1=url+"page/"+str(i)+"/"
soup1=get_requests(url1)
draw_base_list(soup1)
通过以上的两种方法就可以将多个页面中的信息都爬取下来了,赶紧动手试试吧。
Python爬取网址中多个页面的信息的更多相关文章
- python爬取豌豆荚中的详细信息并存储到SQL Server中
买了本书<精通Python网络爬虫>,看完了第6章,我感觉我好像可以干点什么:学的不多,其中的笔记我放到了GitHub上:https://github.com/NSGUF/PythonLe ...
- Python 爬取网页中JavaScript动态添加的内容(一)
当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息.但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据.此时,如果我们仍采用常规方法 ...
- Python 爬取 北京市政府首都之窗信件列表-[信息展示]
日期:2020.01.25 博客期:133 星期六 [代码说明,如果要使用此页代码,必须在本博客页面评论区给予说明] //博客总体说明 1.准备工作 2.爬取工作 3.数据处理 4.信息展示(本期博客 ...
- Python 爬取网页中JavaScript动态添加的内容(二)
使用 selenium + phantomjs 实现 1.准备环境 selenium(一个用于web应用程测试的工具)安装:pip install seleniumphantomjs(是一种无界面的浏 ...
- python爬取网络中的QQ号码
import urllib.request import ssl import re import os #博客地址:https://blog.csdn.net/qq_36374896 def wri ...
- python 爬取国家粮食局东北地区玉米收购价格监测信息
#!/usr/bin/python# -*- coding: UTF-8 -*-import reimport sysimport timeimport urllibimport urllib.req ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- 一个自定义python分布式专用爬虫框架。支持断点爬取和确保消息100%不丢失,哪怕是在爬取进行中随意关停和随意对电脑断电。
0.此框架只能用于爬虫,由框架来调度url请求,必须按照此方式开发,没有做到类似celery的通用分布式功能,也不方便测试.可以使用另外一个,基于函数式编程的,调度一切函数的分布式框架,做到了兼容任何 ...
- 04 Python网络爬虫 <<爬取get/post请求的页面数据>>之requests模块
一. urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib ...
随机推荐
- YAML_10 把监听端口是8080的Apache服务全部停止
ansible]# vim ad.yml --- - hosts: cache remote_user: root tasks: - shell: netstat -atunlp | ...
- XAMPP环境搭建WordPress,DVWA
本周学习内容: 1.学习MySQL数据库.Linux.PHP开发: 2.复习等级培训内容: 3.使用xampp环境安装WordPress,学习WordPress数据库表的设计: 4.使用xampp安装 ...
- 影像优化 OptimizeRaster工具包介绍
Esri OptimizeRasters是一个高效.可配置的开源工具包. OptimizeRasters提供了以下功能: 影像格式转换和压缩.支持输出优化栅格格式:MRF.分块TIFF.云存储优化Ge ...
- 【一起来烧脑】入门ES6体系
为什么要学习ES6 掌握ES3.ES5.ES6的联系和区别 快速入门ES6 学会快速构建ES6的编译环境 学习ES6: 常量 作用域 箭头函数 默认参数 对象代理 git git clone http ...
- SQL语句简单增删改查
常用数据类型 Int:整数,长度没有作用 Varchar:字符串,varchar(3)表示最多存放3个字符,1个中文或英文或符合都占1个字符 Decimal:小数,decimal(5,2)表示共存5位 ...
- 我们一起分析一下这个刚刚修复的RDP漏洞CVE-2019-0708
写在前面的话 在微软今年五月份的漏洞更新安全公告中,提到了一个跟远程桌面协议(RDP)有关的漏洞.我们之所以要在这里专门针对这个漏洞进行分析,是因为这个漏洞更新涉及到Windows XP以及其他多个W ...
- 树莓派VNC
sudo raspi-config Interfacing Options -> VNC 1.停止VNC窗口: vncserver -kill:1 2.修改密码 vncpasswd 3.重启服务 ...
- Vue 使用axios分片上传
Vue的界面 <input type="file"/> 上传方法 fileUpload: function () { var num = 1 var file = do ...
- 『MXNet』第六弹_Gluon性能提升 静态图 动态图 符号式编程 命令式编程
https://www.cnblogs.com/hellcat/p/9084894.html 目录 一.符号式编程 1.命令式编程和符号式编程 2.MXNet的符号式编程 二.惰性计算 用同步函数实际 ...
- SQLServer系统视图sysobjects中type字段说明
SQLServer中系统视图sysobjects中type字段的对象类型: AF = 聚合函数 (CLR) C = CHECK 约束 D = DEFAULT(约束或独立) F = FOREIGN KE ...