本教程适用于WebCollector 2.27版本或更高。
在WebCollector中,使用最多的爬取器应该是BreadthCrawler,BreadthCrawler是用WebCollector的内核开发的一个插件,并不属于内核。
如果只是简单定制Http请求,例如加入Cookie、UserAgent等Http头,使用POST操作等,使用BreadthCrawler插件即可完成,可以参考教程WebCollector自定义http请求。
对于一些需要深度定制Http请求的用户,基于WebCollector的内核进行开发是一个不错的选择。基于内核的开发并不难,用户只要自己定义一个Executor即可,下面的例子使用HttpClient定制WebCollector的Http请求:
import cn.edu.hfut.dmic.webcollector.crawldb.DBManager;
import cn.edu.hfut.dmic.webcollector.crawler.Crawler;
import cn.edu.hfut.dmic.webcollector.fetcher.Executor;
import cn.edu.hfut.dmic.webcollector.model.CrawlDatum;
import cn.edu.hfut.dmic.webcollector.model.CrawlDatums;
import cn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager;
import cn.edu.hfut.dmic.webcollector.util.CharsetDetector;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* Created by hu on 2016/2/19.
* 该教程为W