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的构建工具setup.py的方法使用示例
Oct 23 Python
python 读入多行数据的实例
Apr 19 Python
python中单下划线_的常见用法总结
Jul 10 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python操作文件的参数整理
Jun 11 Python
python zip,lambda,map函数代码实例
Apr 04 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
Python设计密码强度校验程序
Jul 30 Python
pycharm如何设置官方中文(如何汉化)
Dec 29 Python
python批量创建变量并赋值操作
Jun 03 Python
Python+Selenium自动化环境搭建与操作基础详解
Mar 13 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+MySQL 制作简单的留言本
2009/11/02 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
基于jquery的表格排序
2010/09/11 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python对于requests的封装方法详解
2019/01/03 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
英国鞋网:Rubber Sole
2020/03/03 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
《老山界》教学反思
2014/04/08 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2015年教师节活动总结
2015/03/20 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
python requests模块的使用示例
2021/04/07 Python
sql中mod()函数取余数的用法
2021/05/29 SQL Server
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android