Scrapy 框架 分布式 爬虫
生活随笔
收集整理的這篇文章主要介紹了
Scrapy 框架 分布式 爬虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分布式 爬蟲
scrapy-redis 實現
原生scrapy 無法實現 分布式
- 調度器和管道無法被分布式機群共享
環境安裝
- pip install scrapy_redis導包:from scrapy_redis.spiders import RedisCrawlSpider
修改spider爬蟲文件
- 將爬蟲類的父類修改成RedisCrawlSpider
- 刪除allowed_domains和start_urls這兩個屬性
- 添加一個新屬性:redis_key = 'xxx'(調度器隊列的名稱)
配置使用指定的調度器和管道(在配置文件中增加如下配置)
# 增加了一個去重容器類的配置, 作用使用Redis的set集合來存儲請求的指紋數據, 從而實現請求去重的持久化DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"# 使用scrapy-redis組件自己的調度器SCHEDULER = "scrapy_redis.scheduler.Scheduler"# 配置調度器是否要持久化, 也就是當爬蟲結束了, 要不要清空Redis中請求隊列和去重指紋的set。如果是True, 就表示要持久化存儲, 就不清空數據, 否則清空數據SCHEDULER_PERSIST = TrueITEM_PIPELINES = {'scrapy_redis.pipelines.RedisPipeline': 400 }指定持久化存儲對應redis的服務器:
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
redis配置:(redis.windows.conf)
bind 127.0.0.1
關閉保護模式:protected-mode no
開啟redis的服務端和客戶端
運行工程:
scrapy runspider spiderFilePath
向調度器的隊列中仍入一個起始的url:
在redis的客戶端執行:lpush xxx www.xxx.com
轉載于:https://www.cnblogs.com/zhang-zi-yi/p/10749452.html
總結
以上是生活随笔為你收集整理的Scrapy 框架 分布式 爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雇佣最优秀的开发者?培养可能是更好的选择
- 下一篇: 我读了这七本书,写了这篇关于如何高效阅读