当来自 Eclipse 的 运行 StormCrawler 时找不到自定义 parsefilter.json 文件
Custom parsefilter.json file not found when running StormCrawler from Eclipse
我想报告一下,我一直在研究用于提取 HTML 响应的 StormCrawler SDK。我知道 JSoupParserBolt 使用 parsefilter.json 文件根据特定需要提取响应。我也知道有一个用于相同目的的默认文件。在我的例子中,我使用 Eclipse 执行 pom.xml 文件来为设计的爬虫生成 .jar 文件。然后我 运行ning 包含主要函数的 CrawlTopology class 和一个 运行 函数,该函数包含来自 SDK 的所有必需的 spout 和 bolt 引用,形成拓扑(我使用 maven archtype 下载示例爬虫)。
问题是 CrawlTopology class 没有调用修改后的 parsefilter.json 文件来引用所需的信息,而是始终使用默认的 parsefilter.json 文件。我无法弄清楚是什么导致了这种问题。是maven依赖问题还是默认项目问题。
谁能帮帮我?
如果您的代码是从原型生成的,那么 parsefilter.json 应该在正确的位置,即 src/main/resources/。
使用 Eclipse 时,确保将项目导入为 Maven 项目。这会将 src/main/resources/ 添加到类路径中。 Eclipse 将获取依赖项并管理 类 等...我在 Eclipse 中经常 运行 拓扑没有任何问题。
这非常适合测试和调试,但最好的方法是 运行 Eclipse 之外的代码,如 README 中所示。如果您还没有安装 Storm,另一种选择是使用
mvn clean compile exec:java -Dexec.mainClass=insert.package.CrawlTopology -Dexec.args="-conf crawler-conf.yaml -local"
在 Eclipse 之外的本地模式下 运行 它。
我想报告一下,我一直在研究用于提取 HTML 响应的 StormCrawler SDK。我知道 JSoupParserBolt 使用 parsefilter.json 文件根据特定需要提取响应。我也知道有一个用于相同目的的默认文件。在我的例子中,我使用 Eclipse 执行 pom.xml 文件来为设计的爬虫生成 .jar 文件。然后我 运行ning 包含主要函数的 CrawlTopology class 和一个 运行 函数,该函数包含来自 SDK 的所有必需的 spout 和 bolt 引用,形成拓扑(我使用 maven archtype 下载示例爬虫)。
问题是 CrawlTopology class 没有调用修改后的 parsefilter.json 文件来引用所需的信息,而是始终使用默认的 parsefilter.json 文件。我无法弄清楚是什么导致了这种问题。是maven依赖问题还是默认项目问题。
谁能帮帮我?
如果您的代码是从原型生成的,那么 parsefilter.json 应该在正确的位置,即 src/main/resources/。
使用 Eclipse 时,确保将项目导入为 Maven 项目。这会将 src/main/resources/ 添加到类路径中。 Eclipse 将获取依赖项并管理 类 等...我在 Eclipse 中经常 运行 拓扑没有任何问题。
这非常适合测试和调试,但最好的方法是 运行 Eclipse 之外的代码,如 README 中所示。如果您还没有安装 Storm,另一种选择是使用
mvn clean compile exec:java -Dexec.mainClass=insert.package.CrawlTopology -Dexec.args="-conf crawler-conf.yaml -local"
在 Eclipse 之外的本地模式下 运行 它。