該專案使用kafka和redis構建分布式爬蟲集群。在多個spider例項間分發url的種子,這些請求通過redis進行協同。由於邊界擴充套件或深度遍歷的特點,任何其他抓取這些觸發器的內容也將在集群中的所有工作程式之間分發。
系統的輸入是一組kafka主題,輸出是一組kafka主題。原始html和資源以互動方式,spider和日誌輸出方式進行爬網。
在最高端別,scrapy cluster執行單個輸入kafka主題,以及兩個單獨的輸出kafka主題。所有對群集的傳入請求都要經過demo.incoming
kafka主題,具體取決於請求將從demo.outbound_firehose
動作請求demo.crawled_firehose
主題或html爬網請求主題生成輸出。
三個核心部件中的每乙個都是可擴充套件的,以便增加或增強其功能。kafka monitor和redis monitor都使用「外掛程式」來增強他們的能力,而scrapy使用「中介軟體」,「管道」和「蜘蛛」來允許您自定義爬行。這三個元件和rest服務一起允許跨多台計算機進行擴充套件和分布式爬網。
爬蟲 分布式爬蟲
爬蟲的本質 很多搞爬蟲的總愛吹噓分布式爬蟲,彷彿只有分布式才有逼格,不是分布式簡直不配叫爬蟲,這是一種很膚淺的思想。分布式只是提高爬蟲功能和效率的乙個環節而已,它從來不是爬蟲的本質東西。爬蟲的本質是網路請求和資料處理,如何穩定地訪問網頁拿到資料,如何精準地提取出高質量的資料才是核心問題。分布式爬蟲只...
分布式爬蟲
乙個基於scrapy redis的分布式爬蟲模板,在scrapy redis自帶的example的基礎上進行修改,新增在實際爬取過程中大部分爬蟲可能用到的功能,使的構建分布式爬蟲更加的簡單。scrapy redis windows ubuntu sudo apt get install redis ...
分布式爬蟲
修改普通爬蟲專案為分布式爬蟲 1.主爬蟲檔案myspider.py 做如下修改,其他不做修改 import scrapy from items import myitem 匯入資料模型 from scrapy redis.spiders import redisspider 匯入scrapy red...