一個比較理想的分散式爬蟲架構是怎樣的?


看到理想這個詞就滾進來了,終於可以給別人談談理想了#到我辦公室來,我們聊一下未來#

1.分散式的話,那就有足夠強壯的爬蟲調度,快速的橫向部署擴展加入節點,任務到達保障,容錯等等基本要穩定好。

2.抓回來的數據,如果有需求的情況下,應該離線下來,包括http header、http body,方便你離線分析,而不是抓完就扔,要用再抓,節省下網路資源

3.有個很成熟的解析器。

a.能夠解析合法/不合法的標籤,對錯誤寫法以主流瀏覽器的修正方法為準,並且解析足夠高效

b.能夠面對flash swf解析,把url抓出來

c.能夠面對ajax、各種2次元的動態生成的請求

4.有很好的插件機制,隨時可以發布更新,把核心和插件應用分離,方便業務和基礎服務層的分離

5.維護網路資源知識庫

a.域名庫,包括域名的解析情況,跳轉情況,各地網路通暢(存活)情況,並以此基礎自動優化抓取策略

b.上面提到的抓回來的靜態資源維護

c.自動發現新入庫加入資源庫

d.聰明地解決掉泛解析到相同地方、www與根域重複等優化問題

更多的細節有個文章裡面講得挺好:開發網路爬蟲應該怎樣選擇爬蟲框架?

說完招式,還得補句心法:

「好好乾,我們以後會上市」。


任何軟體都是根據需求去設計實現的,不存在「比較理想」這種說法,因為有些需求是自相矛盾的,比如CAP。

根據你的需要,結合客觀實際,合理制定需求,科學設計,勤勞開發,才是富國強民之策。


我們閑來無事,開發了一個企業級的分散式socks代理系統,專註於解決分散式結構的連接層傳輸效率問題,可用於網路爬蟲,你只需寫邏輯層,連接層由我們解決。是開源的。歡迎大家試用^_^

邏輯層根據你爬蟲的需求 是千變萬化的,我們把邏輯層和連接層分開,這樣你在開發的時候就不必陷入分散式的泥沼

最近比較忙了,對不住申請試用的大家。

我沒時間維護這個項目了,目前項目處於停擺狀態- -


推薦閱讀:

Python 編碼為什麼那麼蛋疼?
如何維護爬蟲程序中的代理ip庫?
python模擬登錄知乎,captcha是手工輸入,為什麼也提示captcha錯了?
如何解析網頁視頻的原始地址?
anaconda是幹什麼的,是 python的第三方解釋環境嗎?

TAG:爬蟲計算機網路 |