我正在寻找围绕我们的 webcrawling perl 脚本开发一个管理和管理解决方案。基本上,现在我们的脚本保存在 SVN 中,并由 SysAdmin/devs 等手动启动。每次我们需要从新来源检索数据时,我们都必须创建一个包含业务指令和目标的工单。正如您可以想象的那样,这不是最佳解决方案。
该系统有 3 个一致的主题:
- 数据检索具有“概念结构”,因为缺少更好的短语,即信息检索遵循特定路径
- 我们只是在寻找非常具体的信息,因此我们不必担心一段时间内的大量爬网(想想成千上万的页面与数百万的页面)
- 抓取是基于 url 而不是基于站点的。
随着我将此 alpha 版本增强为更生产级的 beta,我希望添加数据检索的自动化和管理。此外,我们的其他系统是 Java(我更精通),我想对 perl 方面进行划分,这样我们就不必严重依赖外部帮助。
我已经评估了通常的嫌疑人Nutch、Droid等,但花在修改这些框架以适应我们特定信息检索的时间是不合理的。
所以我想听听您对以下架构的看法。
我想创建一个解决方案
- 使用 Java 作为管理和执行 perl 脚本的接口
- 使用 Java 进行配置和数据访问
- 坚持使用 perl 进行检索
一个示例用例是
- 数据分析师向我们提出了爬虫的要求
- perl 开发人员创建所需的脚本并使用此 webapp 提交脚本(保存到文件系统)
- 脚本从带有特定参数的 webapp 启动....
webapp应该能够创建perl脚本的多个线程来启动多个爬虫。
所以问题是
- 你怎么看
- Java 和 Perl 之间的集成有多牢固,特别是从 java 调用 perl
- 有人使用过这样的系统,它实际上是 perl 存储库的一部分
真正的目标是不要有一大堆杂乱无章的 perl 脚本,并对我们的信息检索进行一些管理和组织。另外,我知道我可以使用 perl 做我们想要的 web 部分——但正如我之前提到的——试图让 perl 保持专注。但看起来我并不反对把它变成一个全 perl 的解决方案。
接受任何所有建议和意见。
谢谢