給你一個換ip軟體:分散式爬蟲透過具體都能幹點啥?
網路爬蟲使用分散式,重點是解決兩個難題:
1)大批次URL管理
2)網速
現在比較流行的分散式網路爬蟲,是Apache的Nutch。但是對於大多數使用者來說,Nutch是這幾類網路爬蟲裡,最不好的選擇,理由如下:
1)Nutch是為SEO設計的網路爬蟲,大多數使用者是需要一個做精準資料爬取(精抽取)的網路爬蟲。Nutch執行的一套流程裡,有三分之二是為了SEO而設計的。對精抽取沒有太大的意義。也就是說,用Nutch做資料抽取,會浪費很多的時間在不必要的計算上。而且如果你試圖透過對Nutch進行二次開發,來使得它適用於精抽取的業務,基本上就要破壞Nutch的框架,把Nutch改的面目全非,有修改Nutch的能力,真的不如自己重新寫一個分散式網路爬蟲框架了。
2)Nutch依賴hadoop執行,hadoop本身會消耗很多的時間。如果叢集機器數量較少,爬取速度反而不如單機網路爬蟲快。
3)Nutch雖然有一套外掛機制,而且作為亮點宣傳。可以看到一些開源的Nutch外掛,提供精抽取的功能。但是開發過Nutch外掛的人都知道,Nutch的外掛系統有多蹩腳。利用反射的機制來載入和呼叫外掛,使得程式的編寫和除錯都變得異常困難,更別說在上面開發一套複雜的精抽取系統了。而且Nutch並沒有為精抽取提供相應的外掛掛載點。Nutch的外掛有隻有五六個掛載點,而這五六個掛載點都是為了SEO服務的,並沒有為精抽取提供掛載點。大多數Nutch的精抽取外掛,都是掛載在“頁面解析”(parser)這個掛載點的,這個掛載點其實是為了解析連結(為後續爬取提供URL),以及為SEO提供一些易抽取的網頁資訊(網頁的meta資訊、text文字)。
4)用Nutch進行網路爬蟲的二次開發,網路爬蟲的編寫和除錯所需的時間,往往是單機網路爬蟲所需的十倍時間不止。瞭解Nutch原始碼的學習成本很高,何況是要讓一個團隊的人都讀懂Nutch原始碼。除錯過程中會出現除程式本身之外的各種難題(hadoop的難題、hbase的難題)。
5)很多人說Nutch2有gora,可以持久化資料到avro檔案、hbase、mysql等。很多人其實理解錯了,這裡說的持久化資料,是指將URL資訊(URL管理所需要的資料)存放到avro、hbase、mysql。並不是你要抽取的結構化資料。其實對大多數人來說,URL資訊存在哪裡無所謂。
6)Nutch2的版本目前並不適合開發。官方現在穩定的Nutch版本是nutch2.2.1,但是這個版本繫結了gora-0.3。如果想用hbase配合nutch(大多數人用nutch2就是為了用hbase),只能使用0.90版本左右的hbase,相應的就要將hadoop版本降到hadoop 0.2左右。而且nutch2的官方教程比較有誤導作用,Nutch2的教程有兩個,分別是Nutch1.x和Nutch2.x,這個Nutch2.x官網上寫的是可以支援到hbase 0.94。但是實際上,這個Nutch2.x的意思是Nutch2.3之前、Nutch2.2.1之後的一個版本,這個版本在官方的SVN中不斷更新。而且非常不穩定(一直在修改)。
所以,如果你不是要做SEO,儘量不要選擇Nutch作為網路爬蟲。有些團隊就喜歡跟風,非要選擇Nutch來開發精抽取的網路爬蟲,其實是衝著Nutch的名氣,當然最後的結果往往是專案延期完成。
如果你是要做SEO,Nutch1.x是一個非常好的選擇。Nutch1.x和solr或者es配合,就可以構成一套非常強大的SEO了。如果非要用Nutch2的話,建議等到Nutch2.3釋出再看。目前的Nutch2是一個非常不穩定的版本。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561288/viewspace-2637002/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好用的爬蟲軟體?動態ip軟體告訴你爬蟲
- 動態換ip軟體帶你看:爬蟲常見的抓取策略爬蟲
- 你知道直方圖都能幹啥?直方圖
- new操作符具體幹了啥
- 動態換ip軟體告訴你:一般人為啥要學點Python?Python
- 第一個分散式爬蟲專案分散式爬蟲
- 能讓一個軟體公司倒閉的軟體開發方法,你幹過幾件?
- 透過一個具體的例子理解 npm 的 peerDependencyNPM
- 分散式爬蟲原理之分散式爬蟲原理分散式爬蟲
- 【太陽軟體】動態換ip軟體:反爬蟲對抗對資料分析的影響爬蟲
- [爬蟲架構] 如何設計一個分散式爬蟲架構爬蟲架構分散式
- 構建一個給爬蟲使用的代理IP池爬蟲
- 分散式爬蟲分散式爬蟲
- 換ip軟體的挑選要點
- 014-活該你爬蟲被封之Scrapy Ip代理中介軟體爬蟲
- 分散式爬蟲有哪些使用代理IP的方法?分散式爬蟲
- 分散式爬蟲原理分散式爬蟲
- 如何構建一個分散式爬蟲:基礎篇分散式爬蟲
- 如何構建一個分散式爬蟲:理論篇分散式爬蟲
- 如何構建一個分散式爬蟲:實戰篇分散式爬蟲
- 分散式爬蟲很難嗎?用Python寫一個小白也能聽懂的分散式知乎爬蟲分散式爬蟲Python
- 19--Scarpy05:增量式爬蟲、分散式爬蟲爬蟲分散式
- 開源爬蟲軟體彙總爬蟲
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- 分散式爬蟲的部署之Scrapyd分散式部署分散式爬蟲
- 分散式爬蟲的部署之Gerapy分散式管理分散式爬蟲
- 動態ip代理軟體:只要網際網路在,爬蟲就存在爬蟲
- 動態IP代理軟體有話說:天下爬蟲框架皆出Scrapy爬蟲框架
- 生命是個軟體,我是個啥?
- 帶你入門Python爬蟲,8個常用爬蟲技巧盤點Python爬蟲
- 你幹啥的?LombokLombok
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- Python爬蟲教程-34-分散式爬蟲介紹Python爬蟲分散式
- 爬蟲(14) - Scrapy-Redis分散式爬蟲(1) | 詳解爬蟲Redis分散式
- 解決IP限制使用代理兔子軟體換IP一鍵完成!
- 換ip軟體的使用建議
- 個體軟體過程
- 爬蟲為什麼要用IP代理更換IP地址爬蟲