Web crawler Nutch抓取超时

Web crawler Nutch抓取超时,web-crawler,nutch,Web Crawler,Nutch,我正在尝试使用nutch-1.12对某些站点进行爬网,但对于种子列表中的某些站点,抓取无法正常工作: http://www.nature.com/ (1) https://www.theguardian.com/international (2) http://www.geomar.de (3) 正如您在下面的日志中所看到的(2)和(3)抓取时工作正常(1)导致超时,而链接本身在浏览器中工作正常。 由于我不想大幅增加等待时间和尝试次数,我想知道是否有其他方法来确定为什么会生成此超时以及如何修复

我正在尝试使用nutch-1.12对某些站点进行爬网,但对于种子列表中的某些站点,抓取无法正常工作:

http://www.nature.com/ (1)
https://www.theguardian.com/international (2)
http://www.geomar.de (3)
正如您在下面的日志中所看到的(2)和(3)抓取时工作正常(1)导致超时,而链接本身在浏览器中工作正常。 由于我不想大幅增加等待时间和尝试次数,我想知道是否有其他方法来确定为什么会生成此超时以及如何修复它


日志
不知道为什么,但如果用户代理字符串包含“Nutch”,则www.nature.com会保持连接挂起。也可使用wget进行复制:


wget-U'my test crawler/Nutch-1.13-SNAPSHOT(mydotmailatexampledotcom)'-dhttp://www.nature.com/

您可以通过增加nutch-site.xml中的http超时设置来尝试

<property>
  <name>http.timeout</name>
  <value>30000</value>
  <description>The default network timeout, in milliseconds.</description>
</property>

http.timeout
30000
默认网络超时,以毫秒为单位。

否则,请检查该站点的robots.txt是否允许对其页面进行爬网。

如果我理解robots.txt的概念,则可以通过nature.com/robots.txt访问正确的页面。如果没有其他解决方案,我将尝试增加超时值。是的,因为nutch遵守robots.txt,如果路径不允许,它将不会爬网。另一件值得尝试的事情是更改爬网程序的用户代理(如“http.agent.name”)并从中删除“nutch”一词。一些网站阻止基于name.http.agent.name的机器人程序,但将其设置为“nature”也不起作用。“http.agent.name”只是用户代理程序中的一项功能。您可以在nutch-default.xml:HTTP“User-Agent”请求头中看到这一点。不能为空-请将其设置为与您的组织唯一相关的单个单词。注意:您还应该检查其他相关属性:http.robots.agents http.agent.description http.agent.url http.agent.email http.agent.version并适当设置它们的值。我更改了http.agent.version的值,它对我有效。谢谢用户代理字符串是否与nutch-default.xml中的http.agent.name相同?我把它改成了“nature”,但仍然得到了同样的错误。这没有帮助,因为“/Nutch-1.13-SNAPSHOT”部分(或任何其他版本)总是附加在后面。您必须覆盖整个代理字符串,最简单的方法是使用
http.agent.rotate
(不要忘记将接受的用户代理字符串添加到agents.txt)。
<property>
  <name>http.timeout</name>
  <value>30000</value>
  <description>The default network timeout, in milliseconds.</description>
</property>