This is the code taken from http://code.google.com/p/crawler4j/ and the name of this file is MyCrawler.java
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))$");
/*
* You should implement this function to specify
* whether the given URL should be visited or not.
*/
public boolean shouldVisit(WebURL url) {
String href = url.getURL().toLowerCase();
if (filters.matcher(href).matches()) {
return false;
}
if (href.startsWith("http://www.xyz.us.edu/")) {
return true;
}
return false;
}
/*
* This function is called when a page is fetched
* and ready to be processed by your program
*/
public void visit(Page page) {
int docid = page.getWebURL().getDocid();
String url = page.getWebURL().getURL();
String text = page.getText();
List<WebURL> links = page.getURLs();
}
}
这是调用MyCrawler的Controller.java的代码..
public class Controller {
public static void main(String[] args) throws Exception {
CrawlController controller = new CrawlController("/data/crawl/root");
controller.addSeed("http://www.xyz.us.edu/");
controller.start(MyCrawler.class, 10);
}
}
所以我只想确保此行在controller.java文件中的含义
controller.start(MyCrawler.class, 10);
这里10的意思是什么..如果我们将这个10增加到20那么效果会是什么......任何建议都将受到赞赏......
答案 0 :(得分:3)
This网站显示了CrawlController的来源。
从10增加到20会增加抓取工具的数量(每个都在他们自己的线程中) - 研究代码会告诉你这会产生什么样的影响。
答案 1 :(得分:1)
鉴于您在帖子上添加的名称,您似乎已经知道它的作用 - 它设置了爬虫程序线程的数量。至于它会产生什么影响......这在很大程度上取决于每个线程等待I / O的时间 - 主要是网络,一个小磁盘,以及你有多少CPU和磁盘吞吐量。当其中一个发生时,峰值吞吐量将会发生:
对于CPU,不要指望达到100% - 最大值为80%