标签:执行 任务调度 list 存储 防火墙设置 max 支持 class 启用
redis是支持分布式的内存数据库
可以为scrapy做一个新的调度器(redis),替换scapy的默认调度器, 从而实现分布式功能。
负责分布式爬虫的任务调度
依赖于Scrapy和redis。
主要组件:Scheduler、Dupefilter、Pipeline和Spider。
【没有使用分布式的时候】
url存在本机内容中,如: start_urls= [‘http://www.dushu.com‘ ] yield scrapy.Request(url)
【使用分布式的时候】
没有了start_urls, 而是使用redis_key,
url存在redis中 命令行执行:redis-cli lpush myspider:start_urls ‘http://www.xxx.com‘ 或者使用脚本执行: rds =Redis(‘127.0.0.1‘,6379) rds.lpush(...)
修改master的redis配置文件redis.conf:
1)将 bind 127.0.0.1 修改为bind 0.0.0.0。(注意防火墙设置)
REDIS_HOST = ‘localhost‘ REDIS_PORT = 6379
REDIS_URL = ‘redis://redis_server ip:6379‘
在settings.py中启用redis存储
ITEM_PIPELINES = { ‘scrapy_redis.pipelines.RedisPipeline‘: 400, }
# scrapy runspider myspider_redis.py scrapy crawl myspider
redis-cli -h redis_server_ip
redis-cli> lpush myspider_redis:start_urls http://www.xxxxxx.com/aaa/
标签:执行 任务调度 list 存储 防火墙设置 max 支持 class 启用
原文地址:https://www.cnblogs.com/louyifei0824/p/9895470.html