scrapy 插件
首先安装
pip install scrapy-redis
然后在 setting.py加上几句话
#可选
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
#可选 调度持久化
SCHEDULER_PERSIST = True
#可选 redis调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
#可选 redis 全局状态统计
STATS_CLASS = "scrapy_redis.stats.RedisStatsCollector"
#配置
REDIS_URL = 'redis://:123456@127.0.0.1:6379'
REDIS_ENCODING = "utf-8"
ok,运行起来就是分布式爬虫了。
如果只需要使用 redis 去重那么注释掉 SCHEDULER 。
建议 python3.8 以上,都什么年代了还 3.6
python低版本会出现 pickle 错误的问题,
需要修改 scrapy-redis 源码
首先安装 pickle5
pip install pickle5
在 scrapy-redis 源码文件picklecompat.py中
try:
import cPickle as pickle
except ImportError:
import pickle5 as pickle
个人认为插件应该开箱即用 ,根据 scrapy-redis 的RedisSpider 重写需要改代码,大家见仁见智,不喜勿喷。