Java爬蟲框架,WebMagic 0.4.0 發布
webmagic采用完全模塊化的設計,功能覆蓋整個爬蟲的生命周期(鏈接提取、頁面下載、內容抽取、持久化),支持多線程抓取,分布式抓取,并支持自動重試、自定義UA/cookie等功能。
此次更新主要對下載模塊進行了優化,并增加了同步下載的API,同時對代碼進行了一些重構。
一、Downloader部分更新:
- 升級HttpClient到4.3.1,重寫了HttpClientDownloader的代碼 #32。
- 在http請求中主動開啟gzip,降低傳輸開銷 #31。
-
修復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. "http://baike.baidu.com/search/word?word=httpclient&pic=1&sug=1&enc=utf8" ); |
3 |
System.out.println(baike); |
三、Site(配置類)增加更多配置項:
- 支持Http代理: Site.setHttpProxy #22 。
- 支持自定義所有Http頭:Site.addHeader #27 。
- 支持開啟和關閉gzip:Site.setUseGzip(false) 。
- Site.addStartUrl移到了Spider.addUrl,因為作者認為startUrl應該是Spider的屬性,而不是Site的屬性。
四、Spider(主邏輯)進行了一些重構:
- 重寫了多線程邏輯,代碼更加易懂了,同時修復了一些線程安全問題。
- 引入了Google Guava API,讓代碼更簡潔。
- 增加配置Spider.setSpawnUrl(false),此選項為false時,只下載給定的url,不下載任何新發現的url。
- 可以給初始url中附帶更多信息:Spider.addRequest #29
另外webmagic郵件組成立了,歡迎加入:https://groups.google.com/forum/#!forum/webmagic-java
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!