大家好,我是水哥!
今天给大家分享的是数据采集实战:使用「八爪鱼」第三方工具来采集 BOSS 直聘上的数据分析职位数据。
接下来,我们详细看一看。
不重复造轮子
在工作中,我们一定要形成一个认知,能用第三方工具解决的一定用第三方工具解决。
在软件开发行业中,流行一个代码开发准则:不重复进行造轮子。
这句话告诉我们,要避免「重复劳动」,你碰到的任何一个问题,都可能存在已有的「解决方案」,只需找到它,并学会使用即可。
比如要爬取 BOSS 直聘网站上数据分析职位数据,我们第一步并不是去学习爬虫,而是去搜索是否有第三方工具可以代替我们编写「爬虫代码」。
学习爬虫有门槛,对于不了解计算机网络和没有编程基础的人来说有难度。
如果目标不是成为爬虫工程师,只是为了做分析而去采集数据,完全可以用「第三方采集器」来代替编写爬虫代码。
也许花上一个小时学习第三方采集器的使用,就能代替你学习一个月的爬虫知识。
在工作中,公司更关注的是你的做事结果,而非过程。而选择什么样的工具来提升你的工作效率,这更为关键。
回到文章主题,我们来看一下八爪鱼这个第三方数据采集器的具体使用。
八爪鱼介绍
八爪鱼是一款第三方数据采集器,它号称「不懂网络爬虫技术,也可以轻松采集数据」。
八爪鱼支持本地采集、云采集两种方式,并支持导出各种格式数据。
并且还内置了丰富的网站数据源,提供「模板采集」功能,我们只需简单设置,就能快速准确获取数据。
八爪鱼不仅适用于采集简单网页,学习它的 XPath 功能后,还能采集复杂网页。
基本上「爬虫代码」能做到的事情,八爪鱼也能做到。
八爪鱼一些高级功能是收费的,但免费版就已经满足我们大部分数据采集需求了。
总之,八爪鱼是一款简单易用且功能强大的数据采集器,它将需要使用代码来完成的爬虫流程抽象成了可视化操作,让不懂网络爬虫的人,也能快速的进行采集数据。
八爪鱼下载
获取 Windows 版八爪鱼可以也可以使用水哥专属🔗注册八爪鱼,有惊喜
下载地址:https://affiliate.bazhuayu.com/tHEr9u
八爪鱼官方网站也有详细的安装指导。
在安装好八爪鱼后,我们需要注册账号进行登录后才能使用,也可以不注册账号使用短信或者微信这些第三方账号进行登录。
八爪鱼的使用流程
下面是使用八爪鱼来采集数据的一般流程:
八爪鱼采集数据的流程设计实现其实是模拟网络爬虫的过程,而网络爬虫本质也是模拟我们人工在浏览器访问网页的过程。
例如我们要浏览 BOSS 直聘上的数据分析岗位的职位详情,会怎么做呢?
第一步,我们会找到 BOSS 直聘网站的网页地址:https://www.zhipin.com/,然后在浏览器进行访问。
第二步,我们会在页面上选择数据分析职位,然后进入到职位列表页面。
接着,我们可能会点击某个职位的标题进入到职位详情页面。
在浏览完当前列表页的职位详情后,我们可能会切换页码,接着再浏览下个列表页面的职位数据。
使用八爪鱼采集数据,流程也是和浏览器访问网页的过程是一样的。
八爪鱼采集数据的流程:首先输入要采集的网页地址,接着进行设计流程,最后启动采集并导出数据。
这里的设计流程,对应的就是我们浏览网页时的一连串操作,目的是告诉八爪鱼要如何访问网页、该提取页面的哪些元素等,相当于告诉八爪鱼采集数据的规则。
比如像上面我们进行人工访问时的打开列表页、点击列表页的标题页进入到职位详情页、切换页码的操作就是对应八爪鱼里面的设计流程。
下面,我们来看一下使用八爪鱼采集数据的实际案例。
使用八爪鱼采集 BOSS 直聘职位数据
1. 实操视频
以下是本次数据采集操作的完整视频,大家可以先看一看,接下来水哥会给大家详细讲解每一个步骤。
2. 预备知识
在进行这个实操前,我们需要掌握八爪鱼的一些基础知识,大家可以访问八爪鱼官方教程来学习。
八爪鱼官方教程分为图文版和视频版两种,大家可以结合在一起来学习。
图文教程访问地址: https://www.bazhuayu.com/tutorial8/hottutorial/gnd
视频教程访问地址: https://www.bazhuayu.com/tutorial8/videotutorial/gnd
大家可以着重学习一下以下教程:
3. 确认网页地址
我们要采集的是 BOSS 直聘不同城市的数据分析职位数据。
通过分析可以知道,职位列表的网页地址有如下规律:
https://www.zhipin.com/web/geek/job?city=101230200&position=100511&page=1
其中 city 参数代表城市编码,position 参数代表职位编码,page 参数代表当前页面的页码。
通过浏览器的 F12(开发者工具),我们可以获取职位编码的接口为:https://www.zhipin.com/wapi/zpgeek/common/data/citysites.json
在浏览器访问这个接口地址,可以获取所有城市编码。
数据分析的职位编码是固定的,取值为 100511,在知道了城市编码后,我们就可以通过代码来生成每个城市第 1 到 15 页的职位列表网页访问地址。
水哥这里采用的是 Python 来生成这些网页地址,具体代码如下:
大家可以在公众号后台回复:地址,即可获取这些网页地址。
4. 输入网页地址
由于每个城市不同页码对应的职位列表的网页结构都相同,因此我们可以通过八爪鱼提供的「URL循环」,来批量采集同类型的网页。
打开八爪鱼客户端,点击新建自定义任务。
接着,将职位列表的网页地址复制粘贴到「网址输入框」,作为演示,水哥这里只输入 3 个网页地址:
输入完成后,点击「保存设置」,八爪鱼会自动跳转到「设计流程」界面。
5. 设计流程
在进入到设计流程界面后,我们需要点击「取消识别」功能。
这时候,八爪鱼会自动为我们生成「循环网址-打开循环中的网页」的流程。
八爪鱼会默认打开第一个网址的网页,把鼠标移动到列表中的任意一个标题,然后进行点击,会弹出「操作提示」弹窗,选择「选中全部相似元素」。
点击「选中全部相似元素」后,会弹出下一步的操作提示弹窗,接着我们再选择「循环点击每个链接」。
点击后,八爪鱼会弹出是否需要「设置翻页」的操作提示弹窗,我们选择不需要。
由于我们采集的网页地址包括了每个城市第 1 到 15 分页的职位列表数据,因此并不需要设置翻页,简化了设计流程。
接着,页面会从列表页进入到详情页,八爪鱼此时继续弹出「自动识别」的操作提示弹窗,我们选择「取消识别」。
如果点击「取消识别」后,页面弹出「登录弹窗」,可以在右上角位置,将「浏览模式」开启,再点击关闭登录弹窗,再把「浏览模式」切换回关闭状态。
接着我们进行提取元素,将鼠标移动到需要采集的字段上,当出现蓝色的选中状态后,按住「ctrl键」的同时点击一下「鼠标左键」,会出现提取元素内容的操作提示弹窗。
我们选择「文本内容」进行提取。
点击后,我们会看到提取到的文本内容将会出现在底部,并且提取的字段将会出现「红色标记」的状态,代表提取成功了。
接着,用按同样的方式提取页面中我们想要采集的字段。提取完后,我们可以双击底部的字段名称进行重新命名。
我们还可以在流程设计中添加一些「高级设置」,比如在打开循环中的网址和循环列表的步骤中设置「执行前等待」。
设置「执行前等待」的目的是为了让八爪鱼更像「人工」在访问网站,从而提高数据采集的成功率。
大多数网站都有做反爬虫处理,我们在爬取数据时,一旦被这些网站的反爬虫机制识别出来,将会对访问的账号、IP 等进行封禁,这样我们就无法顺利的完成数据的采集了。
设置「执行前等待」,模仿的是「真人」访问网页的行为。因为我们在实际访问网页时,都会停留几秒再进行下一步操作,这样就不会认为是爬虫脚本在访问它们的网页。
比如我们可以在「循环网址」步骤中设置执行前等待时间:在流程中点击「循环网址」,再点击右下角的「高级设置」,勾选「执行前等待」,在下拉框中选择 1 秒,设置完毕后点击「应用」。
用同样的方式,可以设置流程中的「循环列表」的执行前等待时间。
在流程设置完毕后,需要点击右上角的「保存」,将流程保存下来,以便开始采集。
6. 采集
在设计好流程后,就可以进行数据采集了,点击右上角的「采集」,会出现「采集模式」的选择弹窗,我们选择「本地采集」中的「普通模式」。
为了提高数据采集的成功率,我们可以选择登录到网页后再进行采集,具体步骤为:点击「暂停」按钮,再点击右上角的「显示网页」。
切换到「显示网页」后,会看到当前正在采集的网页,我们可以选择在网页中进行登录后再进行采集。
注意:这里登录的不是你的八爪鱼账号,而是正在采集的网站账号。
在这个案例中,是指登录你的 BOSS 直聘网站的账号。
在登录成功后,可以点击**「返回」并继续采集。
采集成功后,我们可以将数据进行导出。
我们可以选择是否对数据进行去重。
我们选择去重数据,并且选择导出成 Excel 格式的文件。
我们看一下最终的导出效果。
至此,采集数据完毕。
好了,今天的文章就分享到这边了,如果觉得水哥的文章对你有帮助,欢迎将文章分享给你身边的朋友。
我们下次再见!