用python进行多页数据爬取_Python Scrapy多页数据爬取实现过程代码解析

本篇文章小编给大家分享一下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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy是一个强大的Python爬虫框架,可以帮助你轻松地爬取静态网页多页数据。以下是一个简单的示例代码,可以帮助你开始: 首先,你需要创建一个新的Scrapy项目。在命令行中输入以下命令: ``` scrapy startproject myproject ``` 接下来,创建一个新的Spider。在项目的根目录下,使用以下命令: ``` scrapy genspider myspider example.com ``` 这将创建一个名为`myspider`的新Spider,并将其设置为爬取`example.com`域名下的数据。 接下来,在新创建的Spider中添加以下代码: ```python import scrapy class MySpider(scrapy.Spider): name = "myspider" start_urls = ["http://example.com/page=1"] def parse(self, response): # 解析网页内容,并提取你需要的数据 # ... # 检查是否还有下一页 next_page = response.css(".next-page-link ::attr(href)").extract_first() if next_page: yield scrapy.Request(url=next_page, callback=self.parse) ``` 在上面的代码中,`start_urls`变量包含了你要爬取第一页的URL。在`parse()`方法中,你需要解析网页内容并提取你需要的数据。接下来,使用`response.css()`和`response.xpath()`方法找到你需要的数据。 最后,使用`response.css()`方法找到下一页的URL,并使用`scrapy.Request()`方法创建一个新的请求。将请求的URL设置为下一页的URL,并将`callback`参数设置为`self.parse`,以便在获取下一页的内容时继续调用`parse()`方法。 现在,你可以在命令行中使用以下命令运行Spider: ``` scrapy crawl myspider ``` 这将开始爬取第一页的内容,并继续爬取所有下一页的内容。在每个页面上,你可以使用`parse()`方法提取你需要的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值