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 相关文章推荐
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
python 字符串和整数的转换方法
Jun 25 Python
python迭代dict的key和value的方法
Jul 06 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
python颜色随机生成器的实例代码
Jan 10 Python
python使用turtle库绘制奥运五环
Feb 24 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
python三引号如何输入
Jul 06 Python
Python Http请求json解析库用法解析
Nov 28 Python
详解Python requests模块
Jun 21 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
PHP多态代码实例
2015/06/26 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
全网小程序接口请求封装实例代码
2020/11/06 Javascript
pandas DataFrame数据转为list的方法
2018/04/11 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
Python hashlib模块实例使用详解
2019/12/24 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
会计应届生的自荐信
2013/12/13 职场文书
技校个人求职信范文
2014/01/25 职场文书
九年级化学教学反思
2014/01/28 职场文书
九年级英语教学反思
2014/01/31 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书