用python进行多页数据爬取

411次阅读
没有评论
用python进行多页数据爬取

Python Scrapy如何实现多页数据爬取?

发布时间:2020-06-23 11:47:46

来源:亿速云

阅读:112

作者:清晨

这篇文章将为大家详细讲解有关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]/h3/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 Scrapy如何实现多页数据爬取?就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-25发表,共计1325字。
新手QQ群:570568346,欢迎进群讨论 Python51学习