java - Crawler4j - 许多 URL 被丢弃/未处理(输出中丢失)

标签 java web-crawler crawler4j

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

最佳答案

是的,我们有!

请使用最新版本的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(当前)或更高版本,您就可以抓取更多页面。

关于java - Crawler4j - 许多 URL 被丢弃/未处理(输出中丢失),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810697/

相关文章:

R:网络抓取不规则的值 block

types - 如何使用 JSoup 从网页获取资源类型?

java - 语法错误,插入 "... VariableDeclaratorId"以完成 FormalParameterList

wordpress - 像WordPress这样的计划帖子是如何工作的,它是一个cron?

java - 滑动抽屉未关闭

java - Spring Security,多个http元素。哪个是哪个?

java - 避免与 Kotlin 泛型内联

python - 使用 python 3 的 Selenium 中的 WebDriverException

java - 指导 Crawler4j Solr 中的搜索深度

java - 当我从命令行启动 java 应用程序时,我可以防止数字签名警告吗?