开源JAVA爬虫crawler4j源码分析
使用crawler4j非常简单,源码中已经包涵了很多的例子,并且是直接就可以运行的。
首先运行pom.xml,或者是直接下载依赖库:
1.运行Example
打开edu.uci.ics.crawler4j.examples.basic下的BasicCrawlController,就一个main方法,注释掉前3行,改下目录和线程数:
/*if
(args.length != 2) {
System.out.println("Needed parameters: ");
System.out.println("\t rootFolder (it will contain
intermediate crawl data)");
System.out.println(999DOC.COM)("\t numberOfCralwers (number
of concurrent threads)");
return;
}*/
/* *爬取时数据临时存放目录. */
String crawlStorageFolder = "./tmp";
/* *爬取线程数,即同时有多少个爬虫工作. */
int numberOfCrawlers = 5;
保存,运行,程序就开始输出爬取出来的信息了。看,多简单!
翻到BasicCrawlController最后,修改入口URL:
/*
*添加入口URL
*/
controller.addSeed("http://www.ics.uci.edu/");
controller.addSeed("http://www.ics.uci.edu/~lopes/");
controller.addSeed("http://www.ics.uci.edu/~welling/");
/*
*开始工作
*/
controller.start(BasicCrawler.class,
numberOfCrawlers);
3.输出指定信息
打开BasicCrawler,修改visit方法:
4.爬取指定规则页面
很简单,直接修改BasicCrawler的shouldVisit方法:
默认不爬不能解析的格式,如音乐视频,默认只爬URL是http://www.ics.uci.edu开头的,修改方法和正则就可以了。
5.爬取指定数量和深度的页面
回到BasicCrawlController,找到下面两行代码,修改就可以了:
/*
*深度,即从入口URL开始算,URL是第几层。如入口A是1,从A中找到了B,B中又有C,则B是2,C是3
*/
config.setMaxDepthOfCrawling(2);
/*
*最多爬取多少个页面
*/
config.setMaxPagesToFetch(1000);
使用就这么简单,后面再介绍代码和原理。
使用crawler4j非常简单,源码中已经包涵了很多的例子,并且是直接就可以运行的。
首先运行pom.xml,或者是直接下载依赖库:
1.运行Example
打开edu.uci.ics.crawler4j.examples.basic下的BasicCrawlController,就一个main方法,注释掉前3行,改下目录和线程数:
/*if
(args.length != 2) {
System.out.println("Needed parameters: ");
System.out.println("\t rootFolder (it will contain
intermediate crawl data)");
System.out.println("\t numberOfCralwers (number of
concurrent threads)");
return;
}*/
/* *爬取时数据临时存放目录. */
String crawlStorageFolder = "./tmp";
/* *爬取线程数,即同时有多少个爬虫工作. */
int numberOfCrawlers = 5;
保存,运行,程序就开始输出爬取出来的信息了。看,多简单!
翻到BasicCrawlController最后,修改入口URL:
/*
*添加入口URL
*/
controller.addSeed("http://www.ics.uci.edu/");
controller.addSeed("http://www.ics.uci.edu/~lopes/");
controller.addSeed("http://www.ics.uci.edu/~welling/");
/*
*开始工作
*/
controller.start(BasicCrawler.class,
numberOfCrawlers);
3.输出指定信息
打开BasicCrawler,修改visit方法:
4.爬取指定规则页面
很简单,直接修改BasicCrawler的shouldVisit方法:
默认不爬不能解析的格式,如音乐视频,默认只爬URL是http://www.ics.uci.edu开头的,修改方法和正则就可以了。
5.爬取指定数量和深度的页面
回到BasicCrawlController,找到下面两行代码,修改就可以了:
/*
*深度,即从入口URL开始算,URL是第几层。如入口A是1,从A中找到了B,B中又有C,则B是2,C是3
*/
config.setMaxDepthOfCrawling(2);
/*
*最多爬取多少个页面
*/
config.setMaxPagesToFetch(1000);
使用就这么简单,后面再介绍代码和原理。