大家好,欢迎来到IT知识分享网。
一、更改父类为redis的类
1、将爬虫的类从scrapy.Spider变成scrapy_redis.spiders.RedisSpider;
2、或者是从scrapy.CrawlSpider变成scrapy_redis.spiders.RedisCrawlSpider。
from scrapy_redis.spiders import RedisCrawlSpider
以Crawlspider为例:
二、调整起始url
1.将爬虫中的start_urls删掉。
2.增加一个redis_key=”xxx”。这个redis_key是为了以后在redis中控制爬虫启动的。爬虫的第一个url,就是在redis中通过这个发送出去的。
以Crawlspider为例:
redis_key = "dytt:start_url"
三、调整配置文件
# Scrapy-Redis相关配置
# 利用scrapy_redis的调度确保request存储到redis中,起到中间商的作用
# 【无需修改】
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 确保所有爬虫共享相同的去重指纹,保证所有数据去重使用
# 【无需修改】
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 设置redis为item pipeline,不再使用scrapy自带的pipeline
# 【无需修改】
ITEM_PIPELINES = {
'scrapy_redis.pipelines.RedisPipeline': 300
}
# 在redis中保持scrapy-redis用到的队列,不会清理redis中的队列,从而可以实现暂停和恢复的功能。
# 【最好保持开启,无需修改】
SCHEDULER_PERSIST = True
# 设置连接redis信息:
# REDIS_HOST:Redis服务器的ip,根据自己启动的redis服务器的ip【自行修改】
# REDIS_PORT:Redis服务器的端口,默认6379 【不要修改,且无需修改】
REDIS_HOST = '192.168.0.108'
REDIS_PORT = 6379
四、启动分布式爬虫
1.启动Redis服务器
redis-server.exe redis.windows.conf
2、启动scrapy-redis爬虫
进入爬虫文件所在的路径,然后输入命令:scrapy runspider [爬虫名字]。
举例:
scrapy runspider dytt2_.py
3.打开一个redis客户端,lpush起始url
redis-cli
lpush [redis_key] start_url
举例:
# 启动redis客户端
redis-cli
# lpush起始url
lpush dytt:start_url https://dytt8.net/html/gndy/dyzz/list_23_1.html
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15824.html