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改变日志(logging)存放位置的示例
Mar 27 Python
浅谈python中set使用
Jun 30 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
Python常用外部指令执行代码实例
Nov 05 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
python3实现Dijkstra算法最短路径的实现
May 12 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中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php给数组赋值的实例方法
2019/09/26 PHP
jquery 查找新建元素代码
2010/07/06 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
django实现分页的方法
2015/05/26 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
OpenCV 模板匹配
2019/07/10 Python
python 日期排序的实例代码
2019/07/11 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
MySQL基础(二)
2021/04/05 MySQL
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript