最近公司的基於HTTP請求的爬蟲出現了頻繁被BLCOK的問題,你們商量了解決方案最終敲定使用基於Selenium的Phantomjs。git
技術 | 擬人度 | 爬取效率 | 被BLOCK機率 | 硬件要求 |
---|---|---|---|---|
HTTPClient | LOW | HIGH | HIGH | LOW |
HtmlUnitDrvier | Medium-Low | Medium-High | Medium | LOW |
PhantomJS | Medium | HIGH | LOW | Medium |
ChromeDriver | HIGH | LOW | LOW | HIGH |
SQS的服務在百度和阿里也提供.github
這樣的架構把爬蟲從整個體系中剝離了出來,爬蟲沒必要關心須要爬那些,是否是被其餘服務器的爬過了,爬取的結果怎麼解析等等,只須要專一於拿關鍵詞,設置代理,爬取,簡單處理結果就OK. 說白了就是解耦,都幹好本身的事情就OK了.如今雲系統怎麼發達,基本專一於核心開發,一些存儲和消息隊列等等不用太糾結.瀏覽器
Selenium+GhostDriver+PhantomJS服務器
結構管理用的是Maven架構
託管在本身公司的Git倉庫less
目前來看Google/Yandex/Naver/Bing/Yahoo等主流的搜索引擎都沒有什麼問題(咱們不爬baidu的數據)測試