Apache storm 对同一拓扑中的每个域应用不同的ParseFilter

Apache storm 对同一拓扑中的每个域应用不同的ParseFilter,apache-storm,stormcrawler,Apache Storm,Stormcrawler,我正在尝试爬网不同的网站(电子商务网站),并从每个网站的页面中提取特定信息(即产品价格、数量、发布日期等)。 我的问题是:如何配置解析,因为每个网站都有不同的HTML布局,这意味着根据网站的不同,我需要为同一项目使用不同的XPath?我们可以为每个网站在拓扑中添加多个解析器螺栓吗?如果是,我们如何为每个解析器螺栓分配不同的parsefilters.json文件?您需要。目前,除了将所有XPATH表达式放在parsefilters.json中,而不管您想在哪个站点上使用它们,没有其他方法可以做到这

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

您需要。目前,除了将所有XPATH表达式放在parsefilters.json中,而不管您想在哪个站点上使用它们,没有其他方法可以做到这一点

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

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


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

首先,感谢您的快速响应。下面是我的后续问题:我们是否可以提交多个拓扑,每个特定网站一个拓扑,同时它们都写入相同的状态和内容索引?此外,我们将查看JsoupFilters,是否有任何文档可以帮助我们?请参阅更新>我们是否可以提交多个拓扑,每个特定网站一个拓扑,同时它们都写入相同的状态和内容索引?可以,但这将是混乱和难以维护的>我们将查看JsoupFilters,是否有任何文档可以帮助我们?还没有,还没有发布。代码很容易理解