Python Scrapy多页数据爬取实现过程解析
作者:Hedger_Lee 发布时间:2021-02-28 08:14:01
标签:Python,Scrapy,爬取
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)
来源:https://www.cnblogs.com/Hedger-Lee/p/13072506.html


猜你喜欢
- 首先看一下来自Wolfram的定义 马尔可夫链是随机变量{X_t}的集合(t贯穿0,1,..
- 字体的处理在网页设计中无论怎么强调也不为过, 毕竟网页使用来传递信息的, 而最经典最直接的信息传递方式就是文字,&nbs
- 内容摘要: 首先来讲讲 Session 的好处,它可以用来记录客户端私有的
- 方法一、input标签上传如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操
- YOLOv5的Backbone设计在上一篇文章《YOLOV5的anchor设定》中我们讨论了anchor的产生原理和检测过程,对YOLOv5
- pandas 对于数据分析的人员来说都是必须熟悉的第三方库,pandas 在科学计算上有很大的优势,特别是对于数据分析人员来说,相当的重要。
- 本文实例讲述了PHP实现网页内容html标签补全和过滤的方法。分享给大家供大家参考,具体如下:如果你的网页内容的html标签显示不全,有些表
- 本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下类class Student: stuID = "
- model的常用字段V=models.CharField(max_length=None[, **options])#varcharV=mo
- 这里假设你是通过models的ImageField上传图片,并期望在前台img标签中能显示。能否访问图片关键在于,是否能通过正确的路径访问。
- 加上这句代码:print torch.cuda.is_available()判断完毕!说说在pytorch中如何查看gpu信息吧~为什么将数
- 本文实例为大家分享了js调节音量滑块的具体代码,供大家参考,具体内容如下效果html部分<body><div class=
- 四则运算表达式求值思路说明使用双栈来实现——存放数值的栈 nums 与存放运算符
- 使用 ProcessPoolExecutorfrom concurrent.futures import ProcessPoolExecut
- 简介主要介绍事件总线的定义和编写方法和Vue是如何实现消息的订阅与发布的。事件总线事件总线是组件间通信的一种方式,适用于任意组件间的通信,比
- 本文实例讲述了python使用socket进行简单网络连接的方法。分享给大家供大家参考。具体如下:import socketprint &q
- 我们平常在网页上显示的字体最小一般是12PX,当小于10PX时,显示的效果就大打折扣了,因为中文默认的字体是宋体,当小于12PX时的效果如下
- Wake-On-LAN简称WOL,是一种电源管理功能;如果存在网络活动,则允许设备将操作系统从待机或休眠模式中唤醒。许多主板厂商支持IBM提
- 引言本文主要梳理了flask源码中route的设计思路。首先,从WSGI协议的角度介绍flask route的作用;其次,详细讲解如何借助w
- 基于pygame的飞机大作战小游戏,适合新手,不能直接运行,只能在命令行进入当前游戏目录,输入python game.py才能够运行,尚不知