Python Scrapy多页数据爬取实现过程解析


Posted in Python onJune 12, 2020

1.先指定通用模板

url = 'https://www.qiushibaike.com/text/page/%d/'#通用的url模板
pageNum = 1

2.对parse方法递归处理

parse第一次调用表示的是用来解析第一页对应页面中的数据

对后面的页码的数据要进行手动发送

if self.pageNum <= 5:
  self.pageNum += 1
  new_url = format(self.url%self.pageNum)
  #手动请求(get)的发送
  yield scrapy.Request(new_url,callback=self.parse)

完整示例

class QiubaiSpider(scrapy.Spider):
  name = 'qiubai'
  # allowed_domains = ['www.xxx.com']
  start_urls = ['https://www.qiushibaike.com/text/']
  
  url = 'https://www.qiushibaike.com/text/page/%d/'#通用的url模板
  pageNum = 1
  #parse第一次调用表示的是用来解析第一页对应页面中的段子内容和作者
  def parse(self, response):
    div_list = response.xpath('//*[@id="content-left"]/div')
    all_data = []
    for div in div_list:
      author = div.xpath('./div[1]/a[2]/h2/text()').extract_first()
      
      content = div.xpath('./a[1]/div/span//text()').extract()
      content = ''.join(content)

      # 将解析的数据存储到item对象
      item = QiubaiproItem()
      item['author'] = author
      item['content'] = content

      # 将item提交给管道
      yield item # item一定是提交给了优先级最高的管道类

    if self.pageNum <= 5:
      self.pageNum += 1
      new_url = format(self.url%self.pageNum)
      #手动请求(get)的发送
      yield scrapy.Request(new_url,callback=self.parse)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的hashlib和base64加密模块使用实例
Sep 02 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
Python使用gRPC传输协议教程
Oct 16 Python
python实现五子棋游戏
Jun 18 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
python实现网站微信登录的示例代码
Sep 18 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
OpenCV-Python实现油画效果的实例
Jun 08 Python
Selenium自动化测试工具使用方法汇总
Jun 12 #Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 #Python
Django之腾讯云短信的实现
Jun 12 #Python
python相对企业语言优势在哪
Jun 12 #Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 #Python
为什么说python适合写爬虫
Jun 11 #Python
python新手学习使用库
Jun 11 #Python
You might like
几个学习PHP的网址
2006/11/25 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
angular.bind使用心得
2015/10/26 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
js使用highlight.js高亮你的代码
2017/08/18 Javascript
浅谈React高阶组件
2018/03/28 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
对python多线程与global变量详解
2018/11/09 Python
python pytest进阶之fixture详解
2019/06/27 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
小学科学教学反思
2014/01/26 职场文书
忠诚教育心得体会
2014/09/03 职场文书
通知怎么写?
2019/04/17 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python