基於scrapy的爬蟲只能是單機式爬蟲,而借助scrapy-redis可實現分布式爬蟲
首先要安裝scrapy-redis
pip install scrapy-redis
在此之前,應該已經裝好了scrapy和redis
新建乙個scrapy專案和爬蟲檔案
# 使用scrapy_redis的去重組件,在redis資料庫裡做去重
dupefilter_class = "scrapy_redis.dupefilter.rfpdupefilter"
# 使用scrapy_redis的排程器,在redis裡分配請求
scheduler = "scrapy_redis.scheduler.scheduler"
# 在redis中保持scrapy-redis用到的各個佇列,從而允許暫停和暫停後恢復,也就是不清理redis queues
scheduler_persist = true
# 指定爬蟲起始url型別為set
redis_start_urls_as_set = true
# 指定redis資料庫的連線引數
引入redisspider,讓爬蟲類繼承redisspider
將start_urls 放入redis的set中
只需要在爬蟲parse前指定redis_key
爬蟲即可從redis中獲取指定key的value(鏈結)進行爬取
基於scrapy redis兩種形式的分布式爬蟲
redis分布式部署 1.scrapy框架是否可以自己實現分布式?不可以.原因有二.其一 因為太多台機器上部署的scrapy會各自擁有各自的排程器,這樣就是的多台機器無法分配start url列表中的url.多台機器無法共享同乙個排程器 其二 多台機器爬取到的資料無法通過同乙個管道資料進行統一的資料...
基於scrapy redis部署分布式爬蟲
基於scrapy redis部署分布式爬蟲 準備工作,主機需要開啟redis服務,進入redis目錄,在命令列工具中輸入 redis server redis windows.conf 3.使用pycharm開啟專案,找到settings檔案,配置scrapy專案使用的排程器及過濾器 4.修改spi...
基於scrapy redis的兩種分布式爬蟲
redis分布式部署 1.scrapy框架是否可以自己實現分布式?不可以。原因有二。其一 因為多台機器上部署的scrapy會各自擁有各自的排程器,這樣就使得多台機器無法分配start urls列表中的url。多台機器無法共享同乙個排程器 其二 多台機器爬取到的資料無法通過同乙個管道對資料進行統一的資...