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完全新手教程
Feb 08 Python
python字典get()方法用法分析
Apr 17 Python
python函数形参用法实例分析
Aug 04 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python使用Pandas库常见操作详解
Jan 16 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
Python实战之实现康威生命游戏
Apr 26 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python进行数据提取的方法总结
2016/08/22 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
香港通票:Hong Kong Pass
2019/02/26 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
行政管理专业推荐信
2013/11/02 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
父母对孩子说的话
2014/04/12 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
2015年团支部工作总结
2015/04/03 职场文书
团日活动总结格式
2015/05/11 职场文书
安全教育日主题班会
2015/08/13 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
2019年教师入党申请书
2019/06/27 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python