【问题标题】:how to use fast url filters in StormCrawler?如何在 StormCrawler 中使用快速 url 过滤器?
【发布时间】:2018-09-17 07:40:01
【问题描述】:

我遇到了快速 url 过滤器。它提供了几个选项,例如将过滤器应用于特定域。有人可以详细了解它的用法以及如何在 url filters.json 中配置它吗?

【问题讨论】:

  • 欢迎来到 SO。请提供一个最小、完整和可验证的示例。 向我们展示您最近尝试的代码以及您遇到的问题。并解释为什么结果不是你所期望的。编辑您的问题以包含代码,请不要在评论中添加它,因为它可能不可读。 stackoverflow.com/help/mcve 最好展示实际发生的事情,而不是描述您期望发生的事情。

标签: web-crawler apache-storm stormcrawler


【解决方案1】:

过滤器可以像任何其他过滤器一样在 urlfilters.json 中配置,即

 {
  "class": "com.digitalpebble.stormcrawler.filtering.regex.FastURLFilter",
  "name": "FastURLFilter",
  "params": {
    "file": "fast.urlfilter.json"
  }
}

file参数是可选的,默认取上面给出的值。

详情请参阅JAVADOCBLOGWIKI

【讨论】:

  • 感谢您的宝贵回答。那个工作正常。但我有另一个疑问..我正在抓取许多网站,我必须为每个主机下的每个域分别应用过滤器..我该怎么做?
  • 你的意思是每个域下的每个主机? a)您只能在域级别指定 b)您只能使用 GLOBAL 范围定义模式。此过滤器之所以称为快速过滤器,是因为如果有专门针对给定域的规则,它将首先应用这些规则,而不是像 RegexURLFilter 那样按顺序遍历所有规则
  • 我正在抓取两个网站。每个网站都有一个域“/help/”。我必须抓取一个网站的“帮助”域而忽略另一个网站的“帮助”域。风暴爬虫是否提供了一种方法?
  • [ { "scope": "domain:helpdomain.net", "patterns": [ "AllowPath /help/", "DenyPath .+" ] }, { "scope": "domain: helplessdomain.net", "patterns": [ "DenyPath /help/" ] } ]
猜你喜欢
  • 2017-06-19
  • 2010-09-23
  • 1970-01-01
  • 2019-05-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多