開源的Java垂直爬蟲框架:webmagic

jopen 11年前發布 | 121K 次閱讀 網絡爬蟲 WebMagic

webmagic是一個開源的Java垂直爬蟲框架,目標是簡化爬蟲的開發流程,讓開發者專注于邏輯功能的開發。webmagic的核心非常簡單,但是覆蓋爬蟲的整個流程,也是很好的學習爬蟲開發的材料。作者曾經在前公司進行過一年的垂直爬蟲的開發,webmagic就是為了解決爬蟲開發的一些重復勞動而產生的框架。

web爬蟲是一種技術,webmagic致力于將這種技術的實現成本降低,但是出于對資源提供者的尊重,webmagic不會做反封鎖的事情,包括:驗證碼破解、代理切換、自動登錄等。


webmagic的主要特色:

  • 完全模塊化的設計,強大的可擴展性。
  • 核心簡單但是涵蓋爬蟲的全部流程,靈活而強大,也是學習爬蟲入門的好材料。
  • 提供豐富的抽取頁面API。
  • 無配置,但是可通過POJO+注解形式實現一個爬蟲。
  • 支持多線程。
  • 支持分布式。
  • 支持爬取js動態渲染的頁面。
  • 無框架依賴,可以靈活的嵌入到項目中去。

webmagic的架構和設計參考了以下兩個項目:

python爬蟲 scrapy https://github.com/scrapy/scrapy

Java爬蟲 Spiderman https://gitcafe.com/laiweiwei/Spiderman

項目結構

webmagic主要包括兩個包:

  • webmagic-core

    webmagic核心部分,只包含爬蟲基本模塊和基本抽取器。webmagic-core的目標是成為網頁爬蟲的一個教科書般的實現。

  • webmagic-extension

    webmagic的擴展模塊,提供一些更方便的編寫爬蟲的工具。包括注解格式定義爬蟲、JSON、分布式等支持。

webmagic還包含兩個可用的擴展包,因為這兩個包都依賴了比較重量級的工具,所以從主要包中抽離出來,這些包需要下載源碼后自己編譯::

  • webmagic-saxon

    webmagic與Saxon結合的模塊。Saxon是一個XPath、XSLT的解析工具,webmagic依賴Saxon來進行XPath2.0語法解析支持。

  • webmagic-selenium

    webmagic與Selenium結合的模塊。Selenium是一個模擬瀏覽器進行頁面渲染的工具,webmagic依賴Selenium進行動態頁面的抓取。

在項目中,你可以根據需要依賴不同的包。


 

項目主頁:http://www.baiduhome.net/lib/view/home/1385619070421

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