2

我正在运行 crawler4j 来查找一百万个 URL 的状态(http 响应)代码。我没有设置任何过滤器来过滤掉要处理的 URL。
我得到了 90% 的 URL 的正确响应,但输出中缺少 10%。
它们甚至没有出现在 Webcrawler 扩展类的 handlePageStatusCode() 方法中。可能由于各种问题,它们没有被处理。
是否可以找到那些丢失的 URL 进行重新处理?我们能否改进抓取过程以不遗漏任何 URL?

4

1 回答 1

1

是的,我们有!

请使用最新版本的 Crawler4j,因为我添加了许多方法来捕获不同类型的异常。

现在,当您扩展 WebCrawler 时,只需覆盖您可以覆盖的许多方法: https://github.com/yasserg/crawler4j/blob/master/src/main/java/edu/uci/ics/crawler4j/crawler/WebCrawler。爪哇

例如: onPageBiggerThanMaxSize onUnexpectedStatusCode onContentFetchError onUnhandledException 等。

请注意,这些方法被调用并且由于某种原因页面没有被处理,所以再次将其添加为种子不应该改变问题......

无论如何,最新版本的 crawler4j 可以更好地处理许多页面,因此只需升级到 v4.1(当前)或更高版本,您就可以爬取更多页面。

于 2015-08-24T14:35:49.220 回答