分布式爬蟲 - scrapy-redis 分布式系統?
問題描述
現在可以從網上下載這些代碼,怎么進行部署和運行代碼從github上下載了關于分布式的代碼,不知道怎么用,求各位大神指點下。。。下面是網址https://github.com/rolando/scrapy-redis環境已經按照上面的配置好了,但不知道如何實現分布式。分布式我是這樣理解的,有一個redis服務器,從一個網頁上獲取url種子,并將url種子放到redis服務器了,然后將這些url種子分配給其他機器。中間存在調度方面的問題,以及服務器和機器間的通信。
謝謝。。。
問題解答
回答1:感覺這個不是一兩句話可以描述清楚 的。
我之前參考的這篇博文,希望對你有幫助。
說說我個人的理解吧。
scrapy使用改良之后的python自帶的collection.deque來存放待爬取的request,該怎么讓兩個以上的Spider共用這個deque呢?
待爬隊列都不能共享,分布式就是無稽之談。scrapy-redis提供了一個解決方法,把collection.deque換成redis數據庫,多個爬蟲從同一個redis服務器存放要爬取的request,這樣就能讓多個spider去同一個數據庫里讀取,這樣分布式的主要問題就解決了.
注意:并不是換了redis來存放request,scrapy就能直接分布式了!
scrapy中跟待爬隊列直接相關的就是調度器Scheduler。
參考scrapy的結構
它負責對新的request進行入列操作,取出下一個要爬取的request等操作。所以,換了redis之后,其他組件都要改動。
所以,我個人的理解就是,在多個機器上部署相同的爬蟲,分布式部署redis,參考地址我的博客,比較簡單。而這些工作,包括url去重,就是已經寫好的scrapy-redis框架的功能。
參考地址在這里,你可以去下載example看看具體的實現。我最近也在搞這個scrapy-redis,等我部署好了在更新的這個答案。
你有新的進展可以分享出來交流。
回答2:@韋軒 您好,我看這段評論在15.10.11,請問您現在是否有結果了?能否推薦一些您的博客,謝謝您~可以聯系我chenjian158978@gmail.com
相關文章:
1. 關于docker下的nginx壓力測試2. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?3. mac里的docker如何命令行開啟呢?4. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””5. nignx - docker內nginx 80端口被占用6. docker容器呢SSH為什么連不通呢?7. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下8. docker-compose 為何找不到配置文件?9. docker start -a dockername 老是卡住,什么情況?10. angular.js使用$resource服務把數據存入mongodb的問題。

網公網安備