我有一个小项目,我试图使用 crawler4j 4.1 抓取数百万页(我没有明确的数字估计)。我使用的是 BasicCrawler 示例,只对它进行了一些小的更改。在我开始抓取 Crawler4J 日志后不久,显示以下错误不断出现
[Crawler 1] ERROR edu.uci.ics.crawler4j.crawler.WebCrawler - null, while processing: http://www.somelink.com.
我尝试将礼貌策略时间提高到 1000 毫秒,甚至尝试使用单个线程运行爬虫,但同样的事情不断发生。
另外,从长远来看,crawler4J 似乎随机挂起,每次它冻结时我都必须停止它并重新启动它。
知道是什么原因造成的吗? Crawler4J是否将无法访问的链接重新安排回边界?
谢谢
虽然我不太确定是什么导致了这个错误,但是,我试图跟踪所有爬网的链接和那些仍在边界的链接。我可以确认两件事。
- 无法访问的链接将在边界中重新安排,爬虫将尝试再次访问它们。
- 冻结仅发生在超过最大下载大小的页面上。 作为转机,我增加了下载大小限制,并在"要丢弃"列表中添加了一些扩展名,这不是最佳解决方案,但它为我提供了诀窍。