八爪鱼采集入门到熟练——01写规则前的准备工作
本文将开始采集的一些必要知识做讲解,有些太偏基础的或者网上有很现成的教学的,我会提供链接。
一、什么是网页数据采集?能采集什么?能解决什么问题?
1,网页数据采集的概念
顾名思义,就是通过从网页中采集数据。你在浏览器中看到的都是网页,也叫页面,上面的每一个文字,每一个数字,都可以称之为数据。网页数据采集就是系统化提取网页上面的字符,从而得到有用的数据。
有些小白中的小白问八爪鱼能采集什么东西,这是个忧伤的问题,任何一个网页中你能看到的字符都可以尽量想办法采集到。看不到的,只要出现在源代码中的,也可以尽量想办法采集到。八爪鱼只是采集工具,数据源头需要自己找,不要把八爪鱼想成自动贩卖机,想要什么点一下就行,没那么容易的事情。先找到数据源页面才是重点,所以不要问以下的白痴问题:
问:八爪鱼能采集所有北京饭馆信息么?
答:
应该是这样考虑问题:所有北京饭馆信息哪里可以找到?大众点评-选择北京-选择餐饮应该有很多这种信息,全部的信息是很难的,但是大众点评的信息数量很多,基本可以涵盖我的需求。所以问题直接变更为:八爪鱼能否采集大众点评上的北京地区,美食商家信息? 答案当然是可以的。
2,网页数据采集结果是什么样子
八爪鱼能采集的数据非常好理解,就把它当做是个简化的excel表格便可。八爪鱼作为采集器只是提取网页中的字符串信息,通过循环采集,最终得到的就是一张表,和excel不同的是,这个表里只有文字,没有图片和其他东西。所有的数据都会存到一张表格里。
3,网页数据采集主要作用,解决什么问题
就像刚才说的需求那样,可能你需要所有北京地区饭馆的商家信息。做什么用?可能你想给这些商家打电话推销你的产品信息,也可能你只是需要统计你周边的竞争对手,或者只是你老板的突发奇想非让你搜集这些数据,又或者是这是你的大学毕业论文课题所需要的数据。数据的需求是多种多样的,但是都是一个流程:输入(数据来源)-采集(八爪鱼)-加工(数据清洗)-输出(最终用途)。数据不是万能的,但是数据的最终用途是由你来决定的。
二、八爪鱼采集器是什么?采集原理是什么?
1,八爪鱼采集工具介绍
八爪鱼官网:https://www.bazhuayu.com/
八爪鱼是一个工具、程序、软件,它把数据采集的繁琐性工作简化为自动化执行,从而解决大批量数据采集的问题。
它的下载和安装都是比较简单的,八爪鱼本身可以免费使用,免费版本基本操作都是ok的,但是只允许单机采集,并且导出数据的时候需要用积分。如果不想花太多钱,完全可以使用单机采集,积分导出的形式。云采集作为旗舰版配置,主要是解决采集速度慢的问题,这个之后再细讲。
建议先好好看看八爪鱼入门手册:https://www.bazhuayu.com/doc-wf
八爪鱼的基本操作在本文中不做过多讲解,也许你会批斗我:这不是入门教学么?为什么不讲? 对此我只能说,八爪鱼官网的教学视频很直白,软件操作入门上手难度也很低,预期我费劲讲这些基本操作,不如通过举例子来讲解来得快。而且你又没给我钱,八爪鱼也没给我钱,我干嘛讲那么细呢?是不是。
2,八爪鱼的采集原理
八爪鱼采集原理可以简单地理解为,模拟用户访问某个页面,从页面源代码中提取想要的信息。一切的一切都基于模拟用户访问和用户操作,这就是八爪鱼的核心——“模拟”。这个核心决定了很多问题,详细的可以看我写的其他文章《市面主流采集工具对比和个人感受》。
注:是的,你找不到这篇文章文章,为什么?因为我还没写,哈哈哈……(抱歉这只是临时的,因为没写完所以没更新链接)但是我在知乎的回答中有一些说明,可以点击这里查看。
三、采集之前你需要知道的事情
1,什么是网页、HTML、源代码
网页本身并不是直接显示在那里的,你看到的页面是经过渲染才显示出来的。举个傻点的例子,就像是你看到一个面包,但是你看不到这面包里面的面粉、鸡蛋、添加剂,你只看到了一个通过将原材料加工之后的成品。这就是它们之间的关系,源代码是原材料,通常的网页都是基于HTML语言编写的源代码,通过你的浏览器,也就是IE、chrome、火狐之类的,进行解析、渲染之后得到的可视化页面。这部分不理解的朋友自行百度,这里不过多阐述。
2,看源代码为什么很重要?
由于你在浏览器中看到的页面是经过“处理”的,所以最真实的数据你并不一定能看到。源代码展现了这些数据,可能你以为无法提取的数据,实际上从源代码中可以看到并提取出来。而且八爪鱼的工作机制就是从源代码中提取数据。
3,Xpath是什么,为什么很重要
XPath 是一门在XML 文档中查找信息的语言。XPath 可用来在XML 文档中对元素和属性进行遍历。这里大家别管xml是什么,html也是一种文档,xpath支持在里面定位元素和查找属性信息。定位元素的元素指的是什么呢?大家先看看HTML的代码例子:
最开始接触的人肯定看着觉得头晕脑胀的,没办法,没接触过编程的人肯定觉得干嘛什么都代码化。但是现实就是如此,代码化的东西再可视化才能实现机器和人类的交互。HTML是树形结构,一个元素下面嵌套很多别的元素,理论上是无限制的嵌套。比如:
1
1.1
1.1.1
2
2.1
2.1.1
等等等等……每一个都是一个元素,元素有自己的属性(进入新页面、触发操作、提交表单等),定位到了元素,就可以提取属性或者文本,从而精准提取我们需要的数据。别把它理解烦琐了,就想象成目录一样,通过xpath代码可以定位到具体某一章节的某一子节里一样。
Xpath之所以非常重要,就是因为八爪鱼的一切定位和规则细节,全部依赖于xpath,所以xpath不掌握,是不可能用好八爪鱼的。具体的xpath教程,还是建议参考W3SCHOOL网站的,别怕枯燥,迎难而上才能突破自我:点击这里。
当然,也别太担心,之后有很多套路会教给大家,用xpath套路解决问题也会容易许多。
4,需要准备的软件
首先,你需要一个浏览器,大家肯定会很激动的说,这玩意我有一大堆!我们不需要其他的,八爪鱼的内核是火狐浏览器,所以最保险的流程,就是安装一个火狐浏览器。接下来就是套路时间,请自行在网上寻找或者在火狐浏览器内下载和安装两个插件:
分别是Firebug和Firepath,它们的作用就是提供方便的xpath定位和检查功能。
顺利安装完以后,我们进入随便一个网上的网页,点击F12快捷键就可以进入开发者操作区。
注意看我的截图,要先点击下方的firepath选项卡之后才能进入firepath操作界面,在这个界面里,先点击左侧的小按钮,然后再点击页面上你想提取的数据位置,就可以查看源代码信息并且自动生成该元素的xpath代码。
有了这个工具辅助,八爪鱼可以更精准的实现循环、定位元素,解决很多人莫名其妙的数据漏采、丢失、采集中断等问题。
有人会问,为什么不用IE、谷歌、QQ浏览器、傲游浏览器、搜狗浏览器?
很简单,一句话,八爪鱼里面的浏览器是火狐内核……所以只有火狐看到的是最一致的。而且firepath还挺好用的,谷歌上我还没找到和它完全一样的插件,有个比较好用的谷歌插件叫xpath helper,大家也可以试试看。
四、来开始采集吧!
如果你以为在本文我就会开始采集,那你就大错特错了!这就是套路,我怎么会在一篇文章中写那么多呢?你又不给我稿费……以上都是准备工作,下一篇文章中,我会以一些网站做一些案例来讲采集的流程。我的原则是,不以繁琐的基础教程来入门,直接以入门实战的方法去讲,其中一些细节和经验可以通过举一反三的形式扩展到更多的案例中,从而避免脑袋大,建立信心!
兔哥数据极客俱乐部QQ群:群号:462346024
个人WordPress博客:www.geekerlee.com