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登录QQ邮箱发信的实现代码
Feb 10 Python
python模拟登陆Tom邮箱示例分享
Jan 13 Python
python安装教程 Pycharm安装详细教程
May 02 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
python 字符串和整数的转换方法
Jun 25 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
python获取栅格点和面值的实现
Mar 10 Python
python中PyQuery库用法分享
Jan 15 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
Python selenium绕过webdriver监测执行javascript
Apr 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制作新闻系统的思路
2006/10/09 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
javascript 学习笔记(onchange等)
2010/11/14 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
django 信号调度机制详解
2019/07/19 Python
django框架创建应用操作示例
2019/09/26 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
个人事迹材料怎么写
2014/12/30 职场文书