微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nutch crawler:只需要英文页面

如何解决Nutch crawler:只需要英文页面

我尝试了 - Nutch crawler: accept only english pages 中建议的解决方案,即将以下属性添加到 nutch-site.xml

<property>
   <name>http.accept.language</name>
   <value>en-us,en-gb,en</value>
   <description>Value of the "Accept-Language" request header field.
   This allows selecting non-English language as default one to retrieve.
   It is a useful setting for search engines build for certain national group.
   </description>
</property>

我仍然收到西班牙文网址。例如 - www.google.com/es-us/asdfghjk .

任何修复 nutch-site.xml 或 regex-urlfilters.txt 的建议(任何阻止 es-us 的正则表达式建议也非常感谢)。 谢谢

解决方法

属性 City 设置用于 HTTP content negotiation 的 HTTP 标头“Accept-Language”。在网络浏览器中,根据浏览器配置、操作系统语言或 locale 填写“接受语言”。但是,该 URL 明确请求西班牙语页面,而服务器 (google.com) 只是忽略了冲突的“Accept-Language”标头。

没有防弹解决方案只获取英文内容:

  • Nutch 提供了一个插件“语言标识符”,能够检测页面的内容语言
  • 您可以基于简单的启发式方法构建一个 focused crawler(参见 this paper),不要只关注英文页面的链接
  • ev。由匹配 URL 的正则表达式支持:
    • http.accept.language :无论如何都应该点击链接(如果源页面不是英文)
    • /en(?:-[A-Z]{2})?/ : 忽略链接

如果抓取仅涵盖少数站点:尽可能使用正则表达式 URL 过滤器,否则在编制索引或查询索引时按识别的语言进行过滤。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。