webmagic是一個(ge)開(kai)源的(de)(de)Java垂直爬(pa)蟲(chong)框架(jia),目標是簡化(hua)爬(pa)蟲(chong)的(de)(de)開(kai)發(fa)流程,讓開(kai)發(fa)者專注于邏輯功(gong)能(neng)(neng)(neng)的(de)(de)開(kai)發(fa)。webmagic采(cai)用完全模塊化(hua)的(de)(de)設計,功(gong)能(neng)(neng)(neng)覆(fu)蓋整個(ge)爬(pa)蟲(chong)的(de)(de)生命周期(鏈(lian)接提取、頁面下(xia)載、內容抽取、持久化(hua)),支(zhi)持多線程抓取,分(fen)布式抓取,并支(zhi)持自動重試、自定義UA/cookie等功(gong)能(neng)(neng)(neng)。
webmagic包含頁面抽(chou)取功能,開發者可以使用css selector、xpath和正則表達式(shi)進行鏈(lian)接(jie)和內容的提(ti)取,支持多個選擇器鏈(lian)式(shi)調用。
webmagic主要包括兩(liang)個包:
webmagic核(he)心部分,只包含爬蟲(chong)基本模塊和基本抽取器。webmagic-core的目(mu)標是成為網(wang)頁(ye)爬蟲(chong)的一個教科書般的實現。
webmagic的(de)擴展(zhan)模塊,提供一些更方(fang)便的(de)編寫爬(pa)蟲的(de)工具(ju)。包(bao)括注解格(ge)式(shi)定義爬(pa)蟲、JSON、分(fen)布式(shi)等支持。
webmagic還(huan)包(bao)含兩個(ge)(ge)可(ke)用的擴(kuo)展包(bao),因(yin)為這(zhe)兩個(ge)(ge)包(bao)都依(yi)賴了(le)比較重量(liang)級(ji)的工(gong)具,所以從主要包(bao)中抽離出來(lai),這(zhe)些包(bao)需要下載源(yuan)碼后自己編譯:
webmagic-saxon
webmagic與Saxon結合的(de)模塊。Saxon是一個XPath、XSLT的(de)解(jie)析(xi)工具(ju),webmagic依(yi)賴Saxon來進行XPath2.0語(yu)法解(jie)析(xi)支持。
webmagic-selenium
webmagic與Selenium結合的模塊(kuai)。Selenium是一個模擬瀏覽器進行(xing)頁(ye)面渲(xuan)染(ran)的工具,webmagic依(yi)賴Selenium進行(xing)動態頁(ye)面的抓取。
在項目(mu)中,你(ni)可以(yi)根據需要依(yi)賴不同(tong)的包。
不(bu)使用maven
在(zai)項目的lib目錄下(xia),有(you)依賴的所有(you)jar包(bao),直(zhi)接在(zai)IDE里import即可。