webmagic
5款實(shí)用爬蟲(chóng)小工具推薦(云爬蟲(chóng)+采集器)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 816 次瀏覽 ? 2020-05-30 08:01
目前市面上我們常見(jiàn)的爬蟲(chóng)軟件大致可以界定為兩大類(lèi):云爬蟲(chóng)和采集器(特別說(shuō)明:自己開(kāi)發(fā)的爬蟲(chóng)工具和爬蟲(chóng)框架除外)
至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)
簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)
簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker
簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn): 查看全部
至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)
簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)
簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker
簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn): 查看全部
目前市面上我們常見(jiàn)的爬蟲(chóng)軟件大致可以界定為兩大類(lèi):云爬蟲(chóng)和采集器(特別說(shuō)明:自己開(kāi)發(fā)的爬蟲(chóng)工具和爬蟲(chóng)框架除外)

至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)

簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)

簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker

簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn):
Webmagic(爬蟲(chóng))抓取新浪博客案例
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 327 次瀏覽 ? 2020-05-19 08:00
Webmagic框架更側重實(shí)際的內容抓取。今天為你們分享Webmagic 爬蟲(chóng)框架抓取新浪博客的案例。
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。
文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。
通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。 查看全部
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。
文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。
通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。 查看全部
Webmagic框架更側重實(shí)際的內容抓取。今天為你們分享Webmagic 爬蟲(chóng)框架抓取新浪博客的案例。
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。

文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。

通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。
java爬蟲(chóng)系列第一講
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 300 次瀏覽 ? 2020-05-04 08:02
java爬蟲(chóng)系列第一講-爬蟲(chóng)入門(mén)1. 概述java爬蟲(chóng)系列包含什么內容?java爬蟲(chóng)框架webmgic入門(mén)使用webmgic爬取 中的影片資源(動(dòng)作影片列表頁(yè)、電影下載地址等信息)使用webmgic爬取 極客時(shí)間 的課程資源(文章系列課程 和 視頻系列的課程)本篇文章主要內容:介紹java中好用的爬蟲(chóng)框架java爬蟲(chóng)框架webmagic介紹使用webgic爬取動(dòng)作影片列表信息2. java中好用的爬蟲(chóng)框架怎樣判別框架是否優(yōu)秀?容易學(xué)習和使用,網(wǎng)上對應的學(xué)習資料比較多,并且比較健全使用的人比較多,存在的坑他人早已幫你填的差不多了,用上去會(huì )更順心一些框架更新比較快,社區活躍,可以快速體驗一些更好的功能,并與作者進(jìn)行交流框架穩定、方便擴充
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018 查看全部
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018 查看全部
java爬蟲(chóng)系列第一講-爬蟲(chóng)入門(mén)1. 概述java爬蟲(chóng)系列包含什么內容?java爬蟲(chóng)框架webmgic入門(mén)使用webmgic爬取 中的影片資源(動(dòng)作影片列表頁(yè)、電影下載地址等信息)使用webmgic爬取 極客時(shí)間 的課程資源(文章系列課程 和 視頻系列的課程)本篇文章主要內容:介紹java中好用的爬蟲(chóng)框架java爬蟲(chóng)框架webmagic介紹使用webgic爬取動(dòng)作影片列表信息2. java中好用的爬蟲(chóng)框架怎樣判別框架是否優(yōu)秀?容易學(xué)習和使用,網(wǎng)上對應的學(xué)習資料比較多,并且比較健全使用的人比較多,存在的坑他人早已幫你填的差不多了,用上去會(huì )更順心一些框架更新比較快,社區活躍,可以快速體驗一些更好的功能,并與作者進(jìn)行交流框架穩定、方便擴充
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018
5款實(shí)用爬蟲(chóng)小工具推薦(云爬蟲(chóng)+采集器)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 816 次瀏覽 ? 2020-05-30 08:01
目前市面上我們常見(jiàn)的爬蟲(chóng)軟件大致可以界定為兩大類(lèi):云爬蟲(chóng)和采集器(特別說(shuō)明:自己開(kāi)發(fā)的爬蟲(chóng)工具和爬蟲(chóng)框架除外)
至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)
簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)
簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker
簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn): 查看全部
至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)
簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)
簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker
簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn): 查看全部
目前市面上我們常見(jiàn)的爬蟲(chóng)軟件大致可以界定為兩大類(lèi):云爬蟲(chóng)和采集器(特別說(shuō)明:自己開(kāi)發(fā)的爬蟲(chóng)工具和爬蟲(chóng)框架除外)

至于最終選擇哪款爬蟲(chóng)軟件,我們還是須要依照爬蟲(chóng)自己的特性與優(yōu)勢,以及我們自己的需求而進(jìn)行選擇。下面就我就將自己積累的5款實(shí)用爬蟲(chóng)軟件整理分享給你們,希望對你們有效提取信息提供便利。
推薦一:神箭手云爬蟲(chóng)

簡(jiǎn)介:神箭手云是一個(gè)大數據應用開(kāi)發(fā)平臺,為開(kāi)發(fā)者提供成套的數據采集、數據剖析和機器學(xué)習開(kāi)發(fā)工具,為企業(yè)提供專(zhuān)業(yè)化的數據抓取、數據實(shí)時(shí)監控和數據剖析服務(wù)。功能強悍,涉及云爬蟲(chóng)、API、機器學(xué)習、數據清洗、數據轉讓、數據定制和私有化布署等。
優(yōu)點(diǎn):
推薦二:八爪魚(yú)

簡(jiǎn)介:八爪魚(yú)數據采集系統以完全自主研制的分布式云計算平臺為核心,可以在太短的時(shí)間內,輕松從各類(lèi)不同的網(wǎng)站或者網(wǎng)頁(yè)獲取大量的規范化數據,幫助任何須要從網(wǎng)頁(yè)獲取信息的顧客實(shí)現數據自動(dòng)化采集,編輯,規范化爬蟲(chóng)軟件哪種好,擺脫對人工搜索及搜集數據的依賴(lài)爬蟲(chóng)軟件哪種好,從而減少獲取信息的成本,提高效率。
優(yōu)點(diǎn):
推薦三:集搜客GooSeeker

簡(jiǎn)介:GooSeeker的優(yōu)點(diǎn)顯而易見(jiàn),就是其通用性,對于簡(jiǎn)單網(wǎng)站,其定義好規則,獲取xslt文件后,爬蟲(chóng)代碼幾乎不需要更改,可結合scrapy使用,提高爬取速率。
優(yōu)點(diǎn):
推薦四:WebMagic
WebMagic是一個(gè)開(kāi)源的Java垂直爬蟲(chóng)框架,目標是簡(jiǎn)化爬蟲(chóng)的開(kāi)發(fā)流程,讓開(kāi)發(fā)者專(zhuān)注于邏輯功能的開(kāi)發(fā)。WebMagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
推薦五:DenseSpider
簡(jiǎn)介:Go語(yǔ)言實(shí)現的高性能爬蟲(chóng),基于go_spider開(kāi)發(fā)。實(shí)現了單機并發(fā)采集,深度遍歷,自定義深度層級等特點(diǎn)。
優(yōu)點(diǎn):
Webmagic(爬蟲(chóng))抓取新浪博客案例
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 327 次瀏覽 ? 2020-05-19 08:00
Webmagic框架更側重實(shí)際的內容抓取。今天為你們分享Webmagic 爬蟲(chóng)框架抓取新浪博客的案例。
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。
文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。
通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。 查看全部
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。
文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。
通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。 查看全部
Webmagic框架更側重實(shí)際的內容抓取。今天為你們分享Webmagic 爬蟲(chóng)框架抓取新浪博客的案例。
我們以作者的新浪博客 作為反例。在這個(gè)事例里,我們要從最終的博客文章頁(yè)面,抓取博客的標題、內容、日期等信息,也要從列表頁(yè)抓取博客的鏈接等信息,從而獲取這個(gè)博客的所有文章。
列表頁(yè)的格式是““, 其中“0_1”中的“1”是可變的頁(yè)數。

文章頁(yè)的格式是“”,其中“95b4e3010102xsua”是可變的字符。

通過(guò)前面的剖析新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,我先要找到文章的 url,再愈發(fā) url 獲取文章。所以怎么發(fā)覺(jué)這個(gè)博客中所有的文章地址,是爬蟲(chóng)的第一步。
我們可以使用正則表達式 +//.html 對 URL 進(jìn)行一次簡(jiǎn)略過(guò)濾。這里比較復雜的是,這個(gè) URL 過(guò)于空泛,可能會(huì )抓取到其他博客的信息,所以我們必須從列表頁(yè)中指定的區域獲取 URL。
在這里,我們使用 xpath//div[@class=//”articleList//”]選中所有區域,再使用 links()或者 xpath//a/@href 獲取所有鏈接,最后再使用正則表達式 +//.html,對 URL 進(jìn)行過(guò)濾,去掉一些“編輯”或者“更多”之類(lèi)的鏈接。于是,我們可以這樣寫(xiě):
page.addTargetRequests(
page.getHtml().xpath("//div[@class=/"articleList/"]"
).links().regex("http://blog//.sina//.com//.cn/ ... 6quot;).all());
同時(shí),我們須要把所有找到的列表頁(yè)也加到待下載的 URL 中去:
page.addTargetRequests(
page.getHtml().links().regex(
"http://blog//.sina//.com//.cn/ ... 6quot;).all());
文章頁(yè)面信息的抽取是比較簡(jiǎn)單的,寫(xiě)好對應的 xpath 抽取表達式就可以了。
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath(
"//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath(
"//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));
現在,我們早已定義了對列表和目標頁(yè)進(jìn)行處理的方法,現在我們須要在處理時(shí)對她們進(jìn)行分辨。在這個(gè)反例中,區分方法很簡(jiǎn)單,因為列表頁(yè)和目標頁(yè)在 URL 格式上是不同的,所以直接用 URL 區分就可以了!
這個(gè)反例完整的代碼如下:
package us.codecraft.webmagic.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
public class SinaBlogProcessor implements PageProcessor {
public static final String URL_LIST = "http://blog//.sina//.com//.cn/ ... 3B%3B
public static final String URL_POST = "http://blog//.sina//.com//.cn/ ... 3B%3B
private Site site = Site.me().setDomain("blog.sina.com.cn").setSleepTime(3000).setUserAgent(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
@Override public void process(Page page) {
//列表頁(yè)
if (page.getUrl().regex(URL_LIST).match()) {
page.addTargetRequests(page.getHtml().xpath("//div[@class=/"articleList/"]").links().regex(URL_POST).all());
page.addTargetRequests(page.getHtml().links().regex(URL_LIST).all());
//文章頁(yè)} else {
page.putField("title", page.getHtml().xpath("//div[@class='articalTitle']/h2"));
page.putField("content", page.getHtml().xpath("//div[@id='articlebody']//div[@class='articalContent']"));
page.putField("date",page.getHtml().xpath("//div[@id='articlebody']//span[@class='time SG_txtc']").regex("//((.*)//)"));}}
@Override public Site getSite() {
return site;}
public static void main(String[] args) {
Spider.create(new SinaBlogProcessor()).addUrl("http://blog.sina.com.cn/s/arti ... 6quot;).run();
} }
通過(guò)這個(gè)反例我們可以發(fā)覺(jué)主要使用幾個(gè)方式:
如果你認為用 if-else 來(lái)分辨不同處理有些不方便新浪博客超級爬蟲(chóng)(網(wǎng)站推廣工具) v14綠色版,那么可以使用 SubPageProcessor 來(lái)解決這個(gè)問(wèn)題。
java爬蟲(chóng)系列第一講
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 300 次瀏覽 ? 2020-05-04 08:02
java爬蟲(chóng)系列第一講-爬蟲(chóng)入門(mén)1. 概述java爬蟲(chóng)系列包含什么內容?java爬蟲(chóng)框架webmgic入門(mén)使用webmgic爬取 中的影片資源(動(dòng)作影片列表頁(yè)、電影下載地址等信息)使用webmgic爬取 極客時(shí)間 的課程資源(文章系列課程 和 視頻系列的課程)本篇文章主要內容:介紹java中好用的爬蟲(chóng)框架java爬蟲(chóng)框架webmagic介紹使用webgic爬取動(dòng)作影片列表信息2. java中好用的爬蟲(chóng)框架怎樣判別框架是否優(yōu)秀?容易學(xué)習和使用,網(wǎng)上對應的學(xué)習資料比較多,并且比較健全使用的人比較多,存在的坑他人早已幫你填的差不多了,用上去會(huì )更順心一些框架更新比較快,社區活躍,可以快速體驗一些更好的功能,并與作者進(jìn)行交流框架穩定、方便擴充
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018 查看全部
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018 查看全部
java爬蟲(chóng)系列第一講-爬蟲(chóng)入門(mén)1. 概述java爬蟲(chóng)系列包含什么內容?java爬蟲(chóng)框架webmgic入門(mén)使用webmgic爬取 中的影片資源(動(dòng)作影片列表頁(yè)、電影下載地址等信息)使用webmgic爬取 極客時(shí)間 的課程資源(文章系列課程 和 視頻系列的課程)本篇文章主要內容:介紹java中好用的爬蟲(chóng)框架java爬蟲(chóng)框架webmagic介紹使用webgic爬取動(dòng)作影片列表信息2. java中好用的爬蟲(chóng)框架怎樣判別框架是否優(yōu)秀?容易學(xué)習和使用,網(wǎng)上對應的學(xué)習資料比較多,并且比較健全使用的人比較多,存在的坑他人早已幫你填的差不多了,用上去會(huì )更順心一些框架更新比較快,社區活躍,可以快速體驗一些更好的功能,并與作者進(jìn)行交流框架穩定、方便擴充
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018
按照以上幾點(diǎn)的,推薦一款非常好用的java爬蟲(chóng)框架webmgic
3. webmgic介紹WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲(chóng)框架?;赪ebMagic,你可以快速開(kāi)發(fā)出一個(gè)高效、易維護的爬蟲(chóng)。webmagic官網(wǎng):webmgic英文學(xué)習文檔:4.使用webgic爬取動(dòng)作影片列表
使用webgic爬取 愛(ài)影片 電影列表資源信息
示例源碼地址
1. 新建springboot項目java-pachong
2. 導入maven配置
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
fastjson
com.alibaba
commons-io
commons-io
commons-io
commons-io
fastjson
com.alibaba
fastjson
com.alibaba
log4j
log4j
slf4j-log4j12
org.slf4j
us.codecraft
webmagic-extension
0.7.3
us.codecraft
webmagic-selenium
0.7.3
net.minidev
json-smart
2.2.1
com.alibaba
fastjson
1.2.49
commons-lang
commons-lang
2.6
commons-io
commons-io
2.6
commons-codec
commons-codec
1.11
commons-collections
commons-collections
3.2.2
3. 編寫(xiě)抓取影片數據的代碼
在谷歌瀏覽器中訪(fǎng)問(wèn) 愛(ài)影片動(dòng)作片列表
F12發(fā)覺(jué)列表頁(yè)中數據是通過(guò)一個(gè)ajax懇求獲取的,我們獲取懇求地址
編寫(xiě)抓取代碼
package com.ady01.demo1;
import lombok.extern.slf4j.Slf4j;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* description:第一個(gè)爬蟲(chóng)示例,爬去動(dòng)作片列表信息
* <b>time:2019/4/20 10:58
* <b>author:ready likun_557@163.com
*/
@Slf4j
public class Ady01comPageProcessor implements PageProcessor {
@Override
public void process(Page page) {
log.info("爬取成功!");
log.info("爬取的內容:" + page.getRawText());
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(3);
}
public static void main(String args) {
String url = "https://m.ady01.com/rs/film/li ... 3B%3B
Spider.create(new Ady01comPageProcessor()).addUrl(url).thread(1).run();
}
}
4. 運行爬蟲(chóng)代碼
運行Ady01comPageProcessor中的main方式j(luò )ava爬蟲(chóng)超級經(jīng)典,執行結果如下:
5.總結本文中主要用了一個(gè)示例說(shuō)明webgic是這么簡(jiǎn)單就可以完成數據的抓取工作java爬蟲(chóng)超級經(jīng)典,從代碼中可以看出復雜的代碼webmagic都幫我們屏蔽了,只須要我們去關(guān)注業(yè)務(wù)代碼的編撰。文章中沒(méi)有詳盡介webmagic怎樣使用,至于我為什么沒(méi)有在文檔中去做說(shuō)明,主要是webigc早已提供了十分健全的學(xué)習文檔,可以移步到webgic英文文檔,需要更深入了解的可以研究一下webgic的源碼,對你編撰爬蟲(chóng)是十分有用的。明日我們將爬取每位動(dòng)作影片詳情頁(yè)信息,采集詳情頁(yè)中影片的下載地址示例代碼,導入到idea中運行,idea中須要安裝maven和lombok的支持更多技術(shù)文章請關(guān)注公眾號:javacode2018


