大数据获取平台import.io有四大功能特性:Magic, Extractor, Crawler, Connector。上篇我们对前两个做了评测,并与中国的集搜客GooSeeker做了对比,本篇将评测剩下的两个功能特性。 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) 创建整理箱,把要提取的数据丢进去,抓取规则就能自动生成。但是,操作起来不是像这一句话这么简单,而是: a) 建立一个整理箱,这个简单,点下“新建”按钮即可 b) 在整理箱中创建字段,这些字段称为“抓取内容”,也就是网页上的内容要丢到这些字段中 c) 在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) 设置连续动作,在执行采集之前,可以做一连串动作,所以称为“连续”。不如http://import.io的直观录制那么简便,需要点击“创建”按钮,创建一个动作,指定它点击哪里(一个网页节点,用xpath表示),并指定是哪类动作,根据需要设置一些高级选项。 (3) 如图11所示,GooSeeker也相当于记录一组动作,也可以重新排序或者增删,图11可见,就没有http://import.io的类似录制过程的界面那么亲民。再一次看到GooSeeker的特点:严谨的生产工具
图10:连续点击操作示例 图11:连续动作的编排界面 优点:功能强大,采集能力强。 缺点:上手难度较大,操作相对复杂。 综上,import.io的Connector在操作方面依旧是秉承它一贯的风格,简单易用,而集搜客也同样再次给人“一个生产工具”的感觉,在连续动作这个功能点上,两者基本一致。 通过以上对比,相信大家对大数据采集软件import.io和集搜客有了一个直观的了解。从各个功能对比上来看,http://Import.io的特点主要体现在可视化,易学,操作简单,致力于打造纯傻瓜式操作的采集软件。而集搜客的特点主要体现在半可视化、功能完善、采集能力强,致力于为用户提供完善强大的数据采集功能。总之两者各有千秋,都是非常不错的数据采集软件。 最后,有兴趣的读者可以去深入体验和研究,因为两者宣称的价值其实不仅仅是一个软件工具,而是目标放在“互联网数据的结构化转换,把web变成大家的数据库”。希望未来有机会再分享一下这方面的心得 |