【发布时间】:2015-06-17 09:34:03
【问题描述】:
我用纯 Java 和 selenium 构建了一个多线程网络爬取和提取引擎。 API 中的每个作业都在自己的线程中执行,并将其状态提交回 API。每个作业还可以包含提取信息(XPth、正则表达式、CSS 选择器)、连接信息(代理凭据)和抓取引擎的挂钩。例如,在保存结果之前单击一个按钮。这个引擎很好用,但现在我想在多台机器上并行运行它。我可以使用当前版本(具有频道支持)来做到这一点,但我正在寻找改进和技术,以使整个事情变得更好并学习新的东西。
我找到了 Akka.io、Apache Spark、Apache Mesos 和 Apache Storm,并问自己这些框架中的一个是否可能是一种技术,我应该花更多时间研究并在上面重建我的引擎。
实际上,我并不了解框架的所有差异和优势,但这就是我要问的原因。他们似乎很相似。
我打算用这些框架之一构建一个爬虫引擎吗?有人会建议使用框架吗?为什么或为什么不?
【问题讨论】:
-
你看过 Nutch 吗? nutch.apache.org这是一个真正的网络爬虫框架,看起来像。
-
@kutschkem 谢谢你的建议。 nutch 看起来不错,但似乎不支持在网站上执行 javascript(默认情况下)。我发现一些插件可以通过使用 selenium 来实现这一点,但我必须检查是否可以执行挂钩以在网站上生成点击。我还发现storm-crawler 是一个基于apachestorm 的爬虫。感谢您的提示!
标签: apache-spark web-crawler akka apache-storm mesos