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

对同一拓扑中的每个域应用不同的解析过滤器

如何解决对同一拓扑中的每个域应用不同的解析过滤器

我正在尝试抓取不同的网站(电子商务网站)并从每个网站的页面提取特定信息(即产品价格、数量、发布日期等)。 我的问题是:如何配置解析,因为每个网站都有不同的 HTML 布局,这意味着我需要根据网站为同一项目使用不同的 Xpath?我们可以在每个网站的拓扑中添加多个解析器螺栓吗?如果是,我们如何为每个解析器 bolt 分配不同的 parsefilters.json 文件

解决方法

你需要#586。目前没有办法做到这一点,只能将所有 XPATH 表达式放在 parsefilters.json 中,而不管您想在哪个站点上使用它们。

你不能将不同的 parsefilters.json 分配给一个 bolt 的不同实例。

UPDATE 但是您可以在 parseFilters.json 中有多个 XpathFilters 部分。每个都可以覆盖一个特定的源,但是,目前没有办法限制解析过滤器应用于哪个源。您可以扩展 XPathFilter 以便它需要一些额外的配置,例如URL 必须匹配的正则表达式才能应用。我认为这会很好地工作。

我最近添加了 JsoupFilters,它将在下一个版本中出现。这些对于您的用例应该很有用,但仍然不能解决您需要实施过滤器来组织每个主机的资源的问题。以URL过滤器为例,实现应该不会太难,对项目也有很好的贡献。

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