Java爬蟲框架,WebMagic 0.4.0 釋出

Web開發者發表於2013-11-07

  webmagic採用完全模組化的設計,功能覆蓋整個爬蟲的生命週期(連結提取、頁面下載、內容抽取、持久化),支援多執行緒抓取,分散式抓取,並支援自動重試、自定義UA/cookie等功能。

Java爬蟲框架,WebMagic 0.4.0 釋出

  webmagic包含強大的頁面抽取功能,開發者可以便捷的使用css selector、xpath和正規表示式進行連結和內容的提取,支援多個選擇器鏈式呼叫。

  此次更新主要對下載模組進行了優化,並增加了同步下載的API,同時對程式碼進行了一些重構。

  一、Downloader部分更新:

  1. 升級HttpClient到4.3.1,重寫了HttpClientDownloader的程式碼 #32
  2. 在http請求中主動開啟gzip,降低傳輸開銷 #31
  3. 修復0.3.2及之前版本連線池不生效的問題 #30,使用HttpClient 4.3.1新的連線池機制,實現連線複用功能。

  經測試,下載速度可達到90%左右的提升。測試程式碼:Kr36NewsModel.java 。

  二、增加同步抓取的API,對於小規模的抓取任務更方便:

OOSpider ooSpider = OOSpider.create(Site.me().setSleepTime(100), BaiduBaike.class);
BaiduBaike baike = ooSpider.<BaiduBaike>get("http://baike.baidu.com/search/word?word=httpclient&pic=1&sug=1&enc=utf8");
System.out.println(baike);

  三、Site(配置類)增加更多配置項:

  1. 支援Http代理: Site.setHttpProxy #22 。
  2. 支援自定義所有Http頭:Site.addHeader #27 。
  3. 支援開啟和關閉gzip:Site.setUseGzip(false) 。
  4. Site.addStartUrl移到了Spider.addUrl,因為作者認為startUrl應該是Spider的屬性,而不是Site的屬性。

  四、Spider(主邏輯)進行了一些重構:

  1. 重寫了多執行緒邏輯,程式碼更加易懂了,同時修復了一些執行緒安全問題。
  2. 引入了Google Guava API,讓程式碼更簡潔。
  3. 增加配置Spider.setSpawnUrl(false),此選項為false時,只下載給定的url,不下載任何新發現的url。
  4. 可以給初始url中附帶更多資訊:Spider.addRequest #29

  另外webmagic郵件組成立了,歡迎加入:https://groups.google.com/forum/#!forum/webmagic-java

相關文章