java - 根据 Nutch 中的条件获取后拒绝 url

标签 java web-scraping web-crawler nutch

我想知道是否可以根据条件(例如发布日期或时间)过滤获取的 url。我知道我们可以通过 regex-urlfilter 过滤 url 以进行抓取。

在我的例子中,我不想索引旧文档。因此,如果一份文件在 2017 年之前发布,则必须予以拒绝。是否需要任何日期过滤器插件或已经可用!

任何帮助将不胜感激。提前致谢。

最佳答案

如果您只想避免索引 旧文档,您可以编写自己的IndexingFilter 来检查您的条件并避免对文档进行索引。您没有提及您的 Nutch 版本,但假设您使用的是 v1 we have a new PR (它将为下一个版本做好准备)将使用 JEXL 表达式提供开箱即用的功能,以允许/阻止文档被索引。

如果您能捕获 PR 并对其进行测试并提供一些反馈,那就太棒了!

如果需要,您可以编写自己的自定义插件,并且可以检查 mimetype-filter 是否有与您想要的类似的东西(在这种情况下,我们应用基于 mimetype 的过滤)。

还有一个警告,目前 Nutch 使用的 fetchTimemodifiedTime 来自网络服务器在获取资源时发送的 header ,保持请记住,不应信任这些值(除非您 100% 确定),因为在大多数情况下您会得到错误的日期。 NUTCH-1414提出了一种更好的方法来从页面内容中提取发布日期,或者您可以实现自己的解析器。

请记住,使用这种方法您仍然会获取/解析旧文档,您只是跳过了索引步骤。

关于java - 根据 Nutch 中的条件获取后拒绝 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46357344/

相关文章:

java - JFace TreeViewer 在选择时展开或折叠

go - 从给定与浏览器相同的参数的页面发出 GET 请求在 golang 上不起作用

scala - 如何在scala中对两个或多个正则表达式使用模式匹配

Selenium 在 mac 上解释 javascript?

java - 电子邮件正文中的消息未发送

java - JDBC中,Connection回滚失败怎么办?

python - 如何制定 Xpath 表达式以从子节点获取属性?

python - 使用 Xpath 获取更多相同类型的元素

java - maven项目依赖于eclipse中的gradle一

python - Selenium 蟒 : How to get css without targetting a specific class/id/tag