网络编程
位置:首页>> 网络编程>> Python编程>> Python Scrapy多页数据爬取实现过程解析

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com