天天看點

JAVA網絡爬蟲WebCollector深度解析——爬蟲核心

WebCollector爬蟲官網:​​https://github.com/CrawlScript/WebCollector​​

怎樣将爬蟲核心導入自己的項目?

1.進入爬蟲官網​​http://crawlscript.github.io/WebCollector/​​。下載下傳壓縮包。解壓。

2.解壓後找到“webcollector-版本-bin.zip”,解壓。

3.将“webcollector-版本-bin.zip”解壓後全部的jar,導入你的項目,就可以使用爬蟲核心。

爬蟲核心的demo

進入“webcollector-版本-bin.zip”解壓後所在的目錄(Windows用資料總管。Linux用指令行)。

Windows:輕按兩下start.bat

Linux:運作sh start.sh

就可以看到一個簡單的DEMO,這個DEMO能夠爬取整站的網頁(包含圖檔、檔案、JS、CSS),并依照站點原來的檔案路徑存儲到本地。

圖中是用這個DEMO下載下傳合肥工業大學官網上全部的網頁和檔案。

JAVA網絡爬蟲WebCollector深度解析——爬蟲核心
JAVA網絡爬蟲WebCollector深度解析——爬蟲核心

爬蟲核心提供哪些功能?

1.一套可擴充架構。對于大多數爬蟲開發人員來說,須要一個穩定、易懂的架構。

基于架構去做自己的爬蟲。

2.爬蟲所需的基本類庫。

    1)html源代碼擷取(檔案下載下傳)。

    2)檔案操作。

    3)html源代碼解析(抽取)。

    4)線程池。

    5)URL生成器(周遊器)。

    6)消息機制(各元件通信)。

基本類庫:

在介紹爬蟲架構之前,先介紹一下基本類庫。

假設您不想使用我們的爬蟲架構。僅僅是想做一個主要的爬蟲或者網頁資訊收集産品,或者您僅僅是想做一個簡單的HTML源代碼擷取器,能夠導入WebCollector的jar包,直接調用爬蟲核心提供的類庫。

爬蟲架構:

爬蟲架構會在興許文章中具體介紹。這裡僅僅介紹它與其它爬蟲架構的一些差别。

WebCollector與其它爬蟲架構最大的差别在于它提供了“消息機制”和“URL生成器”。

1)消息機制:

以往的大型爬蟲架構。Heritrix、Nutch、Crawler4j,都是通過插件或者重載代碼的機制,去實作對爬取資訊的處理(解析、儲存)。WebCollector提供了一套強大的消息機制(Handler)。

比如Crawler4j,假設你須要定制爬取時對每一個頁面的操作,須要重載WebCrawler類中的相關函數,而且不能在執行時定制,必須在編譯前就定制一個繼承WebCrawler類的類,細節請看:​​http://code.google.com/p/crawler4j/​​

可是對于WebCollector,你僅僅須要定制一個Handler

Handler gene_handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                Page page = (Page) msg.obj;
                System.out.println(page.html);
            }
        };      

将這個handler傳給周遊器就可以。

2)URL生成器:

Heritrx、Nutch、Crawler4j僅僅提供廣度周遊的網頁周遊方式。并且非常難通過他們自帶的插件機制去改動周遊方式。是以WebCollector裡提供了URL生成器(Generator),自己定義URL生成器能夠完畢各種形式的URL周遊(尤其是對于深網爬取,如微網誌、動态頁面)。