可视化数据采集器import.io与集搜客评测对比

144
作者 华天清
2016.05.19 10:58 字数 4199


最近国外一款大数据采集软件import.io比较火,在获得了90万美元的天使轮融资后,最近更是拿到了1300万美元的A轮融资,吸引了众多投资者的目光,笔者也怀着好奇使用体验import.io的神奇功能,本人是中国的大数据采集软件集搜客GooSeeker的老用户,所以喜欢把两者放在一起对比,下面我把印象最深的几点功能对比说明,对应import.io的四大特色功能:Magic、Extractor、Crawler、Connector,分别进行评测。

对于数据采集比较感兴趣的朋友,我希望能起到抛砖引玉的作用,大家一起分析数据采集的技术亮点。

1.Magic(Import.io)VS 天眼和千面(集搜客)

Magic——

正如单词magic的原意“魔法”一样,import.io给Magic赋予了魔法般的功能,用户只要输入网址,Magic工具就能把网页中的数据整齐规范地神奇地抓下来。

如图1所示,输入58同城租房信息网址后,Magic会自动对网页数据进行采集,操作简单。但可以看到有些列,会存在漏采的情况,且每页需要点“Next page”才能进行采集,无法自动翻页。当然,还有很多网页几乎什么都采集不下来,比如,新浪微博。

无论如何,我感觉很神奇:

  1. 他怎么知道我想要什么信息?
  2. 是不是有人在后台预先做好的?
  3. 有些网址输入以后等待时间较短,有些网址输入以后等待时间很长,难道真的有人在后台做采集规则?

图1:Magic自动抓取示例


上图是import.io的Magic功能的界面截图,纯web界面,不用安装额外的软件,使用十分方便。总结一下:

优点:适应任何网址,操作非常简单,自动采集,采集结果可视化。
缺点:无法选择具体数据,无法自动翻页采集(是我没用熟?)。

GooSeeker的天眼和千面系列——

集搜客的天眼和千面分别针对电商和微博发布的数据采集便捷GUI界面,只要将网址输入,就能将目标数据规范整洁地采集下来。

如图2所示:展示的是博主采集工具(微博的多方面数据分别都有采集管理界面),输入博主主页链接,就能调度爬虫,对博主主页下的信息进行采集,如微博内容、转发、点评等数据。


图2:GooSeeker微博博主采集界面示例

界面也很简洁,与Import.io相比,有个最大的不同就是用户自己运行爬虫群,采集量大那就多运行一些,而且能直接得到原始数据,是存在本地硬盘上的做了结构化转化的XML格式的结果文件。

优点:操作非常简单,能自动翻页采集,微博上能看到的重要字段都采下来。
缺点:采集数据字段已限定,仅能采集GooSeeker官方限定的网站。

从上分析可以看出,Magic和GooSeeker的天眼、千面在操作上都非常简单,基本都属于纯傻瓜式操作,很适合只想专注于业务问题,不想为技术问题所分心的用户,也是纯小白学习数据采集和使用数据结果的好起点。但Magic在采集结果可视化上要比天眼及千眼的适用性更广,缺点就是大数据量的采集场景不可控,而天眼和千面专注于几个主流网站,优势主要体现在可以完成大数据量的采集,比如,一个专业的市场研究或者消费者研究团队,需要百万、千万级的数据,只要你运行足够多的网络爬虫,不会因为采集量的问题而拖你数据研究的后腿。

2.Extractor(import.io)VS 整理箱(集搜客)

Extractor——

Extractor翻译过来就是提取器,如果从实体的角度去理解,那就是将网址中想要的信息一个个提取出来的一个小程序(可能是一组脚本);如果从采集目标的角度去理解,那就是采集特定网页结构的一个规则。同Magic不同,import.io的Extractor(以及后面的另外两个功能)是个独立可运行的软件,有非常直观的可视化界面,能直观地将提取的信息展示出来。

如图3所示:import.io的Extractor很像一个改造过的浏览器,在工具条中输入网址,待网页显示出来后,在浏览器中选择需要抓取的数据,就能将单页同结构的数据整列规范有序地采集下来。


图3:Extractor提取数据示例

优点:灵活采集,操作简单,可视化程度高。
缺点:对采集数据的结构化程度要求很高,对于结构化程度较差的数据,不能很好的进行采集。

GooSeeker整理箱——

集搜客宣称的是“建个箱子,把你要的内容丢进去”,这个箱子就是所谓的整理箱,原理是将需要提取的信息一个个拖到箱子里面一一映射到整理箱,集搜客程序就能自动生成提取器(一段脚本程序),提取器自动存入云服务器,可分配给世界各地的网络爬虫进行提取。

如图4所示,import.io顶部的一条工具条在GooSeeker这里展开成了一个工作台,在工作台上创建箱子,然后通过映射操作把网页上的内容丢到箱子中。想要什么就把什么丢进箱子。原理看起来很简单,但是面对一个箱子大界面和诸多的HTML节点,对新手来说有点压力,当然,界面复杂换来的是能处理更多复杂的情形,因为有更多控件可用。


图4:整理箱提取数据示例


优点:提取准确度可细调,提取字段灵活,同时也适应较复杂的网页。
缺点:可视化效果一般,需要掌握简单html基础知识。

综上,Extractor和整理箱都具有提取信息字段的功能,Extractor操作起来相对更简单直观,适合一些简单结构化的网址,但对一些稍微复杂的网址,Extractor就会出现无法提取的问题,这时候集搜客整理箱的优势就凸显出来了,在尤其复杂的情况下还可以用上自定义xpath来定位数据。

3.Crawler(import.io)VS 爬虫路线(GooSeeker)

Crawler——

Crawler直译过来就是网络爬虫的意思,顾名思义,就是要向深度和广度方向去扩展,以期采集更多数据。Crawler在Extractor的基础上,实现了自动翻页功能。假设要采集页面数为100的网页数据,通过 import.io的Crawler功能就能一键将这100页的信息采集下来,那么具体的采集过程是如何实现的,下面笔者带你简单了解一下Crawler的采集过程。

如图5所示,以58同城租房信息为例,经过关键词搜索共找到有N个页面的租房信息,为了提取这些租房信息。Crawler操作如下:

(1)采集样本数据,在第一页提取需要采集的数据(图5),采集原理同Extracor,这里就不再赘述。


图5:Crawle提取数据示例

(2)训练数据集,进入第二页(图6),Crawler会自动采集第二页数据(提取的字段同第一页),再翻到下一页,由于网页的结构都没有发生变化,Crawler同样会自动采集,循环此训练过程,当Crawler认为收集了足够多的训练集(据称最多支持5个样本)(图7),训练完成,点结束,保存,即可成功采集所有页面数据。


图6:Crawle添加页面示例

图7:Crawle训练样本完成

Import.io的Crawler训练过程操作确实非常的简单,易懂,只需要多选择几个同结构的页面进行测试,相当于在告诉爬虫,我就是要采集这些相似页面的信息,爬虫在了解到这些需求后,就能把这些相同结构的信息采集下来,不过也会存在一些小问题,当某些字段发生细微的变化时,因为与前面训练要采集的数据不一样,就会把这些信息给漏掉,所以Crawler比较适合结构十分固定的页面。

总结一下:
优点:灵活采集,操作简单,采集过程可视化
缺点:继承了Extractor的缺点,对数据结构化程度要求高

GooSeeker爬虫路线——

集搜客的爬虫路线的实现是建立在整理箱的基础上,原理与Crawler基本相似,但适应性更广,带来的负面影响是操作相对复杂。

我们先回顾一下整理箱的建立理念,GooSeeker一直宣称的是“建个箱子,把需要的内容丢进去”,理念很直接,把需要的网页内容直观地摘下来,存到一个箱子中。

如图8所示,以采集京东手机信息为例,要想采集所有页面关于手机的信息数据,操作如下:

(1)创建整理箱,把要提取的数据丢进去,抓取规则就能自动生成。但是,操作起来不是像这一句话这么简单,而是:

  1. 建立一个整理箱,这个简单,点下“新建”按钮即可
  2. 在整理箱中创建字段,这些字段称为“抓取内容”,也就是网页上的内容要丢到这些字段中
  3. 在DOM树上选中要抓的节点,映射给某个字段。
    既然说“建个箱子,把需要的内容丢进去”,为什么不真的可视化地做这个操作呢?这个地方需要改进,敬请关注即将发布的新版本提供的直观标注功能。

(2)构建爬虫路线,将“下一页”作为记号线索进行映射(如图8所示),设置完成,保存后,就能自动采集所有页面的信息了。这个过程虽然说起来很简单,但是相对Crawer,操作起来还是有一点不直观,需要做几次简单的映射,也就是告诉爬虫:”这里是我要点击的“,”这里是我要摘取的“,如下图,主要操作是对着HTML DOM数做的,用户最好有简单html基础,这样就能很精确地定位到DOM节点,而不局限于可见的文字。


图8:爬虫路线翻原理页示例

优点:采集准确度高,适用范围广。
缺点:可视化效果一般,上手需要一个学习实践。

综上,Import.io的Crawler和GooSeeker的爬虫路线主要完成网络爬虫扩展爬行范围和深度的任务,上面我们仅以翻页为例,层级爬行大家自己去实践体验。Crawler操作相对简单,但适应性也较窄,对网站结构一致性要求高,而爬虫路线功能相对更为强大,能适应各种复杂的网站,但操作也相对复杂。

4.Connector(import.io)VS 连续点击(集搜客)

Connector——

import.io的Connector就是在网页上做动作,主要是针对网址无变化,但信息在深层次页面上。需要做了动作以后才能显示出来,但是页面的网址又不发生变化,这就大大增加了采集数据的难度,因为即使配置好了规则,结果爬虫进入的页面是初始页面,无法采集到目标信息,而Connector的存在就是为了解决此类问题。Connector可以记录这一点击过程,进而采集到目标页面的信息。

同样以58同城租房信息为例来测试Connector功能的可操作性。

(1)通过点击,查询到需要采集的信息所在的页面。如图9所示,Connector可记录用户每次的点击行为。


图9:Connector操作示例

(2)在目标页面建立规则,提取信息。到达目标页面后,需要做的操作就跟前面的一样了,把需要采集的信息提取出来。

通过亲自动手实践,发现连续点击失败率比较高,如果是搜索的话,这一动作很容易被记录下来,但是如果仅仅是点击动作的话,很难被记录成功。可能的话,读者可以亲自试试,看看到底是什么原因导致的。

是否有些似曾相识的感觉?没错,有点像web测试工具,把动作录下来,再回放,用户体验很好,时不时出现记录不成功,看来是有些代价的,我估计还是定位不准的问题,当你记录的时候和后来去执行的时候,网页HTML DOM的稍微变化,就可能把动作做错位置了。

优点:操作简单,采集过程完全可视化。
缺点:点击动作最多只能点击10次,功能相对单一。同时从使用情况来看,Connector的记录功能失败率较高,很多时候都会操作失败,可能是直观可视化的代价。

GooSeeker连续点击——

集搜客连续点击功能完全一样,正如其名字一样。实现边点击、边采集的功能,结合爬虫路线,可产生更强大的采集效果,这个算集搜客比较高级的功能了,能产生很多意想不到的采集方式,这里简单举例介绍。

如图10所示,要采集微博个人相关信息,因为这些数据必须将鼠标放到人物头像上,才能将这些信息展现出来,所有需用到集搜客的连续点击功能。操作如下:

(1)采集目标字段,首先对网页定位,将这些要采集的字段采集下来,方式同上,不再赘述。

(2)设置连续动作,在执行采集之前,可以做一连串动作,所以称为“连续”。不如import.io的直观录制那么简便,需要点击“创建”按钮,创建一个动作,指定它点击哪里(一个网页节点,用xpath表示),并指定是哪类动作,根据需要设置一些高级选项。

(3) 如图11所示,GooSeeker也相当于记录一组动作,也可以重新排序或者增删,图11可见,就没有import.io的类似录制过程的界面那么亲民。再一次看到GooSeeker的特点:严谨的生产工具。


图10:连续点击操作示例

图11:连续动作的编排界面

优点:功能强大,采集能力强。
缺点:上手难度较大,操作相对复杂。

综上,import.io的Connector在操作方面依旧是秉承它一贯的风格,简单易用,而集搜客也同样再次给人“一个生产工具”的感觉,在连续动作这个功能点上,两者基本一致。

通过以上对比,相信大家对大数据采集软件import.io和集搜客有了一个直观的了解。从各个功能对比上来看,import.io的特点主要体现在可视化,易学,操作简单,致力于打造纯傻瓜式操作的采集软件。而集搜客的特点主要体现在半可视化、功能完善、采集能力强,致力于为用户提供完善强大的数据采集功能。总之两者各有千秋,都是非常不错的数据采集软件。

最后,有兴趣的读者可以去深入体验和研究,因为两者宣称的价值其实不仅仅是一个软件工具,而是目标放在“互联网数据的结构化转换,把web变成大家的数据库”。希望未来有机会再分享一下这方面的心得。

评测