一个非常不错的 Spider 程序 - weblech

weblech是一个使用 Java 实现的 Spider 程序,简单明了,是研究 Spider 程序原理和 Java 实现一个非常好的项目。官方地址:http://weblech.sourceforge.net/

另外目前发行的 Weblech 程序有一个非常明显的 bug,就是如果设置多个线程,当下载第一个URL时(一般是网站主页),如果等待时间过长,那么其他线程要么会认为网站已下载完而结束,要么会在下面标*代码处抛出NullPointerException。解决的方法很简单,只要在 nextURL = queue.getNextInQueue(); 后面加一个空值判断就可以了:
synchronized(queue) {
nextURL = queue.getNextInQueue();
if(nextURL == null)
continue;
downloadsInProgress++;
}

参考资料:
发现weblech的一个Bug(多线程)
http://www.blogjava.net/Andyluo/archive/2006/02/16/31013.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注