網絡爬蟲框架對比

如下是蒐集的一些網絡爬蟲框架資料:css

一、Nutch(http://nutch.apache.org/)java

這是一個開源Java 實現的搜索引擎,提供了咱們運行本身 的搜索引擎所需的所有工具,包括全文搜索和Web爬蟲。 Nutch目前最新的版本爲version v2.3。

 二、Crawler4jgit

Crawler4j是一個開源的Java類庫提供一個用於抓取Web頁面的簡單接口。能夠利用它來構建一個多線程的Web爬蟲。github

示例代碼:web

import java.util.ArrayList;
import java.util.regex.Pattern;

import edu.uci.ics.crawler4j.crawler.Page;
import edu.uci.ics.crawler4j.crawler.WebCrawler;
import edu.uci.ics.crawler4j.url.WebURL;

public class MyCrawler extends WebCrawler {

        Pattern filters = Pattern.compile(".*(\\.(css|js|bmp|gif|jpe?g"
                + "|png|tiff?|mid|mp2|mp3|mp4"
                + "|wav|avi|mov|mpeg|ram|m4v|pdf"
                + "|rm|smil|wmv|swf|wma|zip|rar|gz))$");
        
        public MyCrawler() {
        }

        public boolean shouldVisit(WebURL url) {
                String href = url.getURL().toLowerCase();
                if (filters.matcher(href).matches()) {
                        return false;
                }
                if (href.startsWith("http://www.ics.uci.edu/")) {
                        return true;
                }
                return false;
        }

        public void visit(Page page) {
                int docid = page.getWebURL().getDocid();
                String url = page.getWebURL().getURL();         
                String text = page.getText();
                ArrayList<WebURL> links = page.getURLs();               
        }
}apache

三、WebMagic(http://webmagic.io/)網絡

WebMagic是一個簡單靈活的Java爬蟲框架。多線程

它的特性包括:簡單的API,可快速上手;模塊化的結構,可輕鬆擴展;提供多線程和分佈式支持框架

示例:分佈式

public class GithubRepoPageProcessor implements PageProcessor { private Site site = Site.me().setRetryTimes(3).setSleepTime(1000).setTimeOut(10000); @Override public void process(Page page) { page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all()); page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-])").all()); page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString()); page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString()); if (page.getResultItems().get("name")==null){ //skip this page page.setSkip(true); } page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()")); } @Override public Site getSite() { return site; } public static void main(String[] args) { Spider.create(new GithubRepoPageProcessor()).addUrl("https://github.com/code4craft").thread(5).run(); } }

四、Heritrix(http://crawler.archive.org/)

這是一個由 java 開發的、開源的網絡爬蟲,用戶能夠使用它來從網上抓取想要的資源。其最出色之處在於它良好的可擴展性,方便用戶實現本身的抓取邏輯。

 

五、神箭手雲爬蟲框架(http://www.shenjianshou.cn/)

這是一個免費的網絡爬蟲框架,爲開發者提供成套的開發教程和開發工具,爲企業提供專業化的數據抓取、數據實時監控和數據分析服務。

最大的特色是一站式服務,經過底層框架簡化了網絡爬蟲開發難度,並且提供了現成的豐富的網絡爬蟲資源。

相關文章
相關標籤/搜索