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

Applying different parsefilters to each domain in the same topology

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

您需要 #586。目前没有办法做到这一点,只能将所有 XPATH 表达式放在 parsefilters.json.

中,而不管您要在哪个站点上使用它们

您不能将不同的 parsefilters.json 分配给螺栓的不同实例。

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

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