WebCollector爬取CSDN部落格

2021-07-09 23:12:57 字數 1356 閱讀 1645

新聞、部落格爬取是資料採集中常見的需求,也是最容易實現的需求。一些開發者利用httpclient和jsoup等工具也可以實現這個需求,但大多數實現的是乙個單執行緒爬蟲,並且在url去重和斷點爬取這些功能上控制地不好,爬蟲框架可以很好地解決這些問題,開源爬蟲框架往往都自帶穩定的執行緒池、url去重機制和斷點續爬功能。

爬蟲框架往往也會自帶網頁解析功能,支援xpath或css選擇器(底層多用jsoup實現)。

使用爬蟲框架,使用者只需要告訴框架大致的爬取範圍,以及每個頁面的抽取規則,即可完成對網頁的爬取,並抽取其中的結構化資料。

import cn.edu.hfut.dmic.webcollector.model.crawldatums;

import cn.edu.hfut.dmic.webcollector.model.page;

import cn.edu.hfut.dmic.webcollector.plugin.berkeley.breadthcrawler;

public

class

tutorialcrawler

extends

breadthcrawler

/*可以往next中新增希望後續爬取的任務,任務可以是url或者crawldatum

爬蟲不會重複爬取任務,從2.20版之後,爬蟲根據crawldatum的key去重,而不是url

因此如果希望重複爬取某個url,只要將crawldatum的key設定為乙個歷史中不存在的值即可

例如增量爬取,可以使用 爬取時間+url作為key。

新版本中,可以直接通過 page.select(css選擇器)方法來抽取網頁中的資訊,等價於

page.getdoc().select(css選擇器)方法,page.getdoc()獲取到的是jsoup中的

document物件,細節請參考jsoup教程

*/@override

public

void

visit(page page, crawldatums next)

}public

static

void

main(string args) throws exception

}

上面的例子將結構化資料輸出到標準輸出流,在實際中,結構化資料應該被輸出到mysql等儲存中,可以參考教程:使用spring jdbc持久化webcollector爬取的資料。

維護webcollector及教程需要花費較大的時間和精力,如果你喜歡webcollector的話,歡迎通過捐款的方式,支援開發者的工作,非常感謝!

Python爬取小說 2 單章節爬取

coding utf 8 urlopen 開啟 request 請求 from urllib.request import urlopen,request 匯入gzip包 解壓gzip 封裝請求 req request url path,headers headers 開啟鏈結 conn urlop...

python動態爬取知乎 python爬取微博動態

在初學爬蟲的過程中,我們會發現很多 都使用ajax技術動態載入資料,和常規的 不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html 沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文...

c 爬蟲爬取商品資訊

在乙個小專案中,需要用到京東的所有商品id,因此就用c 寫了個簡單的爬蟲。在解析html中沒有使用正規表示式,而是借助開源專案htmlagilitypack解析html。public static string downloadhtml string url,encoding encode catc...