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的Django框架中编写编译函数
Jul 20 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
python装饰器三种装饰模式的简单分析
Sep 04 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
Python find()、rfind()方法及作用
Dec 24 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
多版本Python共存的配置方法
2017/05/22 Python
Python模拟登陆实现代码
2017/06/14 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
店长职务说明书
2014/02/04 职场文书
爱之链教学反思
2014/04/30 职场文书
老兵退伍标语
2014/10/07 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
市级三好学生评语
2014/12/29 职场文书
2016特色励志班级口号
2015/12/24 职场文书
Python os和os.path模块详情
2022/04/02 Python