爬虫分布式--调度器

1.分布式安装:

  • 方法一:
    下载scrapy_redis库:
    Github链接: https://github.com/rmax/scrapy-redis.git

    在终端内切换至scrapy-redis-master文件夹内:

    cd E:\Code\teacher-code\CODES\scrapy-redis-master
    

    在该文件夹内使用语句python setup.py install即可

  • 方法二:
    使用命令:pip install scrapy-redis

2.分布式部署:

在Scrapy框架中部署爬虫完成之后使用:在Scrapy-setting.py文件夹中

  1. 修改Scheduler:
    默认情况下,Request 的队列是在内存中的,为了实现分布式,我们需要将队列迁移到 Redis 中
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
  1. 修改 Redis 连接信息
REDIS_URL = 'redis://[username:password]@hostname:9001'

本地运行:

REDIS_URL = 'redis://localhost:6379'
  1. redis修改去重类
    既然 Request 队列迁移到了 Redis,那么相应的去重操作我们也需要迁移到 Redis 里
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
  1. 配置持久化
    防止手动关闭爬虫或者爬虫遭遇意外终止
SCHEDULER_PERSIST = True

到此为止我们就完成分布式爬虫的配置了。

在这里插入图片描述
使用REDIS_URL,可以使得其他电脑可以使用REDIS数据库中的数据

总结:
向Scrapy项目添加分布式:

SCHEDULER = "scrapy_redis.scheduler.Scheduler"  # 开启Scrapy-redis调度器,分布式配置
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"  # 启动Redis去重

REDIS_URL = 'redis://192.168.1.102:6379'   # 连接本机Redis
SCHEDULER_PERSIST = True   # 当爬虫停住,保留之前存在的指纹
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值