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爬虫之爬虫编写全记录
Nov 06 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python turtle库画一个方格和圆实例
Jun 27 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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连接oracle数据库及查询数据的方法
2014/12/29 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python正则实现计算器功能
2017/12/14 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
django和vue实现数据交互的方法
2019/08/21 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
中学教师管理制度
2014/01/14 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
应届生面试求职信
2014/07/02 职场文书
测量员岗位职责
2015/02/14 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android