Java爬蟲框架,WebMagic 0.4.0 發布

jopen 11年前發布 | 20K 次閱讀 WebMagic

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,對于小規模的抓取任務更方便:

 

1 OOSpider ooSpider = OOSpider.create(Site.me().setSleepTime(100), BaiduBaike.class);
2 BaiduBaike baike = ooSpider.get("http://baike.baidu.com/search/word?word=httpclient&pic=1&sug=1&enc=utf8");
3 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 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!