@
gyorou 多谢提供这个信息,
仔细看了一下,这两者有很多不样的地方。
huginn 还是一个传统爬虫加一些 pipe 函数做数据处理。
而 CloudMonad 注重的是浏览过程和交互,比如说我要获取 V2EX 分页帖子的所有回复,一般爬虫的做法是以页码为参数自动生成的分页 url 地址分别采集,而 CloudMonad 会去
下一页那个按钮,然后不停的点击采集,只到最后一页(当然也支持拼 url 的方式)。
看了一下 huginn 的自定义 Agent 格式,只有 extract 字段,应该不支持任何交互。这样它的采集能里就会很弱,而演示中哪些看上去很酷的图表,
其实只是最基本的数据处理,完全可以把这两部分分开来么,
数据采集用「造数」这类专业的爬虫,然后自建一个 Hadoop 之类数据中心,定时把数据丢进去分析,专业性和稳定性瞬间就提升一个档次了。
另外,CloudMonad 在设计之初有一个小目标:要在尽可能低的系统资源下支持高扩展性(Scalable),而爬虫特别是 Headless 浏览器是高资源消耗操作,
如何在系统低载时尽可能少的消耗资源,又能应付突发大流量请求是一个难题。最后的解决方案是各种按需付费的云服务。
CloudMonad 用了多种云资源,
包括一个整合了阿里云 MNS 和亚马逊 SQS 双备份的 CloudQueue 用于任务分发。
LeanCloud 数据库配合阿里云 OSS 用于前后端通信。
IBM 的 openwhisk ,亚马逊的 Lambda , DigitalOcean 按需使用的虚拟主机用于动态调整资源。
目前整个 CloudMonad 系统的硬性支出只有一台阿里云最低配虚拟主机,其他资源都是按需使用的,目前还都在免费额度内(当然,用户少:()
那台阿里云虚拟机上运行着一个 Akka node 用于协调资源,用户管理等工作,具体的脏活都时候外包给其他云服务做。
说回 huginn ,它似乎更像一个传统的单机版应用,需要安装 mysql 数据库,对系统要求也很高。
github 首页还挂着一个一年前的内存泄漏 issue ,系统的水平扩展会很成问题