【问题标题】:Nutch crawler : only need English pagesNutch爬虫:只需要英文页面
【发布时间】:2021-03-05 20:56:09
【问题描述】:

我尝试了 -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 的正则表达式建议也非常感谢)。 谢谢

【问题讨论】:

    标签: regex web-crawler nutch


    【解决方案1】:

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

    没有万无一失的解决方案只能获取英文内容:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      相关资源
      最近更新 更多