scrapy-redis使用总结
因为初次使用这个分布式的 爬虫,踩了不少坑,所以在这里总结一下这个爬虫的使用。
安装模块
scrapy-redis 安装:
pip install scrapy-redis
scrapy-redis 注意:
因为调用的时候使用的是下面的导包 我一直 pip install RedisCrawlSpider 了半天。竟然在这卡了半天,真丢人:
from scrapy_redis.spiders import RedisCrawlSpider
settings.py配置
scrapy本身不支持分布式,因为他的管道和调度器不能共享,所以需要配置一下。
1.首先需要在自己写的爬虫文件里注释掉
allowed_domains=[‘xxx.com’],
start_urls = [‘xxx.com’]
2.在爬虫文件中 写上自己的 redis_key
例如:redis_key = ‘test’
3.配置settings
#设置重复过滤模块
DUPEFILER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
#设置调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
#断点续爬
SCHEDULER_PERSIST = True
#设置redis
#本地
#REDIS_URL = 'REDIS://127.0.0.1:6379'
#远程
REDIS_HOST = '***.**.**.***'
REDIS_PORT = 6379
REDIS_ENCODING = 'utf-8'
REDIS_PARAMS = {'password':'******'}
redis 配置
首先如果是远程连接redis的话需要配置redis的配置文件:
1.首先找到 bind 将原来的127.0.0.1 修改为 0.0.0.0 允许远程连接。
2.将 protected-model 改为 no
3.因为是远程连接涉及到安全问题,最好设置redis密码
4.在redis 中建立队列 也就是之前的 redis_key
lpush test https://www.baidu.com/
切换到 spiders 目录下
运行scrapy runspider 爬虫文件.py
总结
因为是初次使用这个分布式爬虫,也是慢慢总结经验,如果有帮助到大家,深表荣幸。如果有错误,也请博友们及时指出来。