我正在运行crawler4j来查找一百万个URL的状态(http响应)代码。 我没有设置任何过滤器来过滤掉要处理的网址 我得到90%网址的正确回复,但输出中缺少10% 它们甚至不出现在Webcrawler扩展类的handlePageStatusCode()方法中。 可能由于各种问题而没有处理它们 是否有可能找到那些丢失的URL进行重新处理? 我们是否可以改进抓取过程而不会遗漏任何网址?
答案 0 :(得分:1)
是的,我们有!
请使用最新版本的Crawler4j,因为我添加了许多方法来捕获不同类型的异常。
现在,当您扩展WebCrawler时,只需覆盖您可以覆盖的许多方法: https://github.com/yasserg/crawler4j/blob/master/src/main/java/edu/uci/ics/crawler4j/crawler/WebCrawler.java
如下例所示: onPageBiggerThanMaxSize onUnexpectedStatusCode onContentFetchError onUnhandledException 等
请注意,由于某种原因,这些方法已被调用且页面未被处理,因此将其作为种子再次添加不应该更改问题......
无论如何,最新版本的crawler4j可以更好地处理许多页面,因此只需升级到v4.1(当前)或更高版本,您就可以抓取更多页面。