环境配置 scrapy-redis
先码好原本爬虫,主机要开启 redis-server, config 文件的 bindip = 127.0.0.1 加 # 注释,protected mode 改为 no。
spider 的 配置,其他照旧。
from scrapy_redis.spiders import RedisCrawlSpider
# 继承引进的 RedisCrawlSpider
class DgSpider(RedisCrawlSpider):
name = 'de'
# redis_key 代替 starturls
redis_key = 'de:start_urls'
allowed_domains = ['digikey.cn']
settings.py
# 启动从 Redis 缓存读取队列, 调度爬虫
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 确保所有的爬虫通过 Redis 去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 调度持久化,不清理 Redis 缓存,允许暂停/启动爬虫
SCHEDULER_PERSIST = True
# 主机地址,主机的话可以注释
REDIS_URL = 'redis://root@192.168.0.155:6379'
如果需要将 item 结果返回到 redis 需要使用 scrapy_redis 提供的 pipelines
ITEM_PIPELINES = {
'scrapy_redis.pipelines.RedisPipeline'}
启动时候是在 redis-cli 中输入(样式) :
C:\Users\win>redis-cli
127.0.0.1:6379> lpush de:start_urls https://www.digikey.cn/products/zh/test-and-measurement/test-leads-jumper-specialty/626