Scrapy-Redis中RedisSpider和RedisCrawlSpider如何深入理解与运用?

2026-05-05 12:580阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1212个文字,预计阅读时间需要5分钟。

Scrapy-Redis中RedisSpider和RedisCrawlSpider如何深入理解与运用?

在《Scrapy-Redis入门实战》一文中,我们利用scrapy-redis实现了京东图书爬虫的分布式部署和数据爬取。但存在以下问题:每个爬虫实例在启动时,都必须从start_urls开始爬取,即每个实例都执行相同的爬取任务。

在上一章《Scrapy-Redis入门实战》中我们利用scrapy-redis实现了京东图书爬虫的分布式部署和数据爬取。但存在以下问题:

每个爬虫实例在启动的时候,都必须从start_urls开始爬取,即每个爬虫实例都会请求start_urls中的地址,属重复请求,浪费系统资源。

为了解决这一问题,Scrapy-Redis提供了RedisSpider与RedisCrawlSpider两个爬虫类,继承自这两个类的Spider在启动的时候能够从指定的Redis列表中去获取start_urls;任意爬虫实例从Redis列表中获取某一 url 时会将其从列表中弹出,因此其他爬虫实例将不能重复读取该 url ;对于那些未从Redis列表获取到初始 url 的爬虫实例将一直处于阻塞状态,直到 start_urls列表中被插入新的起始地址或者Redis的Requests列表中出现待处理的请求。

在这里,我们以爬取当当网图书信息为例对这两个Spider的用法进行简单示例。

阅读全文

本文共计1212个文字,预计阅读时间需要5分钟。

Scrapy-Redis中RedisSpider和RedisCrawlSpider如何深入理解与运用?

在《Scrapy-Redis入门实战》一文中,我们利用scrapy-redis实现了京东图书爬虫的分布式部署和数据爬取。但存在以下问题:每个爬虫实例在启动时,都必须从start_urls开始爬取,即每个实例都执行相同的爬取任务。

在上一章《Scrapy-Redis入门实战》中我们利用scrapy-redis实现了京东图书爬虫的分布式部署和数据爬取。但存在以下问题:

每个爬虫实例在启动的时候,都必须从start_urls开始爬取,即每个爬虫实例都会请求start_urls中的地址,属重复请求,浪费系统资源。

为了解决这一问题,Scrapy-Redis提供了RedisSpider与RedisCrawlSpider两个爬虫类,继承自这两个类的Spider在启动的时候能够从指定的Redis列表中去获取start_urls;任意爬虫实例从Redis列表中获取某一 url 时会将其从列表中弹出,因此其他爬虫实例将不能重复读取该 url ;对于那些未从Redis列表获取到初始 url 的爬虫实例将一直处于阻塞状态,直到 start_urls列表中被插入新的起始地址或者Redis的Requests列表中出现待处理的请求。

在这里,我们以爬取当当网图书信息为例对这两个Spider的用法进行简单示例。

阅读全文