Scrapy-Redis 分布式架构:请求队列、去重集合

📂 所属阶段:第五阶段 — 战力升级(分布式与进阶篇)


1. 安装与配置

pip install scrapy-redis
# settings.py
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

REDIS_URL = 'redis://localhost:6379'

2. 分布式爬虫

from scrapy_redis.spiders import RedisSpider

class DistributedSpider(RedisSpider):
    name = 'distributed'
    redis_key = 'spider:start_urls'
    
    def parse(self, response):
        yield {
            'title': response.css('h1::text').get(),
        }

3. 小结

分布式优势:

1. 多机并发:突破单机瓶颈
2. 共享队列:负载均衡
3. 自动去重:避免重复

架构:
- Redis:中央队列
- 多个爬虫:并行爬取
- 数据库:集中存储

💡 记住:Scrapy-Redis 是大规模爬虫的标准方案。掌握它,你就掌握了分布式爬虫的核心。


🔗 扩展阅读