繁体   English   中英

StormCrawler的default-regex-filters.txt

[英]StormCrawler's default-regex-filters.txt

我已经把这个弄乱了一段时间,还不能弄清楚StormCrawler的default-regex-filters.txt文件是如何工作的。

在一个示例中,我需要将爬网程序限制为仅爬网https://www.example.com/dev下的项目,而该站点上没有其他目录。 我把规则

+.*\/dev\/.*

放入default-regex-filters.txt的最后一行,但这似乎不起作用。 我以为可以使用标准的正则表达式规则,但事实并非如此。 上面的示例之一之前有/没有\\,并且可以正常工作吗? 我对此感到很困惑,并且想知道该文件中是否有正则表达式的备忘单,以便我可以更轻松地构建它们。

作为后续措施,文件中只能有一个+过滤器吗? 我隐约记得读过这篇文章,但想确定一下。

您可以根据需要在文件中包含多个+过滤器。

过滤的逻辑很简单

 public String filter(URL pageUrl, Metadata sourceMetadata, String url) {
    for (RegexRule rule : rules) {
        if (rule.match(url)) {
            return rule.accept() ? url : null;
        }
    }
    return null;
}

其中accept表示该模式带有+。 如果不匹配,则过滤URL。

可能是你离开了

# accept anything else
+.

在您添加的表达式上方?

您可能想看看FastURLFilter ,它可能更直观。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM