【问题标题】:How to enable Nutch follow http redirect?如何启用 Nutch 跟随 http 重定向?
【发布时间】:2017-11-01 03:27:29
【问题描述】:

在我的爬取过程中,页面重定向到 404 错误,但是当我使用“readdb”命令时,页面的状态仍然是 302 而不是 404。

然后我查看了配置文件,发现了“http.redirect.max”选项。我已经为3配置了“http.redirect.max”,并且重新抓取了页面,但它的状态仍然是302。

在我阅读了源代码后,我发现了类似的东西:

Response response = getResponse(u, datum, false);

在 HttpBase.java 的“getProtocolOutput”方法中。在我将“false”更改为“true”并重新编译 nutch 后,该功能可以正常工作。

所以我想知道这是使 nutch 跟随重定向的正确方法吗?这种修改会不会导致抓取时出现其他一些错误?

【问题讨论】:

    标签: java web-crawler nutch


    【解决方案1】:

    我认为在这种情况下,Nutch 工作正常http.redirect.max 控制是否立即执行重定向或是否应该排队等待下一轮。

    如果您抓取包含重定向到 404 的 URL (A),则第一个 URL 仍然存在 30x 状态,它是具有 404 响应的第二个 URL (B)。在 Nutch 方面,有两个不同的 URL(这是有道理的)。

    我没有测试您的更改(与其他场景),但是如果您有类似的情况,假设页面 A 重定向到不同的页面 C(不是 404),在这种情况下,您会期望页面 C 的内容要链接到 A 的 URL 并完全忽略 C 的 URL?

    在浏览器中,这通常是我们的感知方式,但在下面有两个不同的请求/URL。

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 2014-05-25
      • 2020-03-30
      • 2012-01-05
      • 2020-04-15
      • 1970-01-01
      相关资源
      最近更新 更多