一個比較理想的分散式爬蟲架構是怎樣的?
12-30
看到理想這個詞就滾進來了,終於可以給別人談談理想了#到我辦公室來,我們聊一下未來#
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:爬蟲計算機網路 |