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中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python pickle模块用法实例分析
May 27 Python
Python中atexit模块的基本使用示例
Jul 08 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python使用asyncio包处理并发详解
Sep 09 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python实现连连看辅助(图像识别)
Mar 25 Python
Python简易计算器制作方法代码详解
Oct 31 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 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中Smarty模板初体验
2011/08/08 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php字符串操作常见问题小结
2016/10/11 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
json数据的列循环示例
2013/09/06 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python发展简史 Python来历
2019/05/14 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
Python中return函数返回值实例用法
2020/11/19 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
仓管员岗位职责范文
2013/11/08 职场文书
超市中秋节促销方案
2014/03/21 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
如何写股份合作协议书
2014/09/11 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
成绩单评语
2015/01/04 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
python文件目录操作之os模块
2021/05/08 Python
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis