分布式爬蟲架構
經過新一輪的投票,項目的范圍已經基本確定。
大家決定 全力以付,集中攻克“分布式爬蟲”。
分布式爬蟲架構1
使用隊列,即生產者,消費都模式。
由于生產者將規則生成到隊列,然后由爬蟲集群(消費者)到隊列中取規則,然后按優先級等規則進行爬取。
分布式爬蟲架構2
類似于webmagic,webmagic的是一個無須配置、便于二次開發的爬蟲框架,它提供簡單靈活的API,只需少量代碼即可實現一個爬蟲。webmagic采用完全模塊化的設計,功能覆蓋整個爬蟲的生命周期(鏈接提取、頁面下載、內容抽取、持久化),支持多線程抓取,分布式抓取,并支持自動重試、自定義UA/cookie等功能。
分布式爬蟲架構3
分布式爬蟲架構3,參考的Cola是一個分布式的爬蟲框架,用戶只需編寫幾個特定的函數,而無需關注分布式運行的細節。任務會自動分配到多臺機器上,整個過程對用戶是透明的。
基于Cola實現的爬蟲位于contrib/目錄下。目前實現了四個爬蟲:
-
wiki:維基百科。
-
weibo:新浪微博爬蟲。從初始用戶出發,然后是其關注和粉絲,依次類推,抓取指定個數的新浪微博用戶的微博、個人信息、關注和粉絲。其中,用戶微博只獲取了內容、贊的個數、轉發和評論的個數等等,而沒有具體去獲取此微博被轉發和評論的內容。
-
generic(unstable):通用爬蟲,只需配置,而無需修改代碼。目前Cola實現了一個抽取器(cola/core /extractor),能夠從網頁正文中自動抽取主要內容,即去除類似邊欄和底腳等內容。但是,此抽取器目前準確度還不夠,效率也不夠高,所以需要謹慎 使用。
-
weibosearch(unstable):新浪微博搜索的爬蟲。這個爬蟲使用 cola.core.opener.SpynnerOpener,基于spynner實現了一個Opener能夠執行JavaScript和Ajax代 碼。目前這個爬蟲存在的問題是:新浪微博可能會將其識別成機器人,因此有可能會讓輸入驗證碼。
wiki和weibo之前有所提及。主要說明generic和weibosearch。
分布式爬蟲架構4
設計方式參考hadoop等分布式運算架構。
控制結點類似于hadoop的namenode,工作結點類似于datanode。存儲可以根據代理適配到DB或者Mongo集群等。
有想參與的可以一起進來討論
群號 194338168
想深度參與的加,不想參與的就別往里進了,現在需要的主要是開發和文檔兩類人。群會定期往出清人! (項目會開源出來)
文章列表