分布式爬蟲:Apache的Nutch,Nutch依賴hadoop運行,hadoop本身會消耗很多的時間。如果集群機器數量較少,爬取速度反而不如單機爬蟲快。
JAVA單機爬蟲:Crawler4j、WebMagic、WebCollector
非JAVA單機爬蟲:scrapy
python內置的urllib2,也可以用requests
Beautiful Soup 缺點:不能加載JS
Scrapy 支持自定義Item,pipeline數據管道,用這個框架可以輕松爬下來如亞馬遜商品信息之類的數據。但是對於稍微復雜一點的頁面,如weibo的頁面信息,這個框架就滿足不了需求了。
mechanize 優點:可以加載JS。缺點:文檔嚴重缺失。
selenium 這是一個調用瀏覽器的driver,通過這個庫你可以直接調用瀏覽器完成某些操作,比如輸入驗證碼。
cola 個分布式爬蟲框架。項目整體設計有點糟,模塊間耦合度較高,不過值得借鑒。