数据采集:如何使用八爪鱼采集BOSS直聘职位数据

大家好,我是水哥!

今天给大家分享的是数据采集实战:使用「八爪鱼」第三方工具来采集 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 格式的文件。

我们看一下最终的导出效果。

至此,采集数据完毕。

好了,今天的文章就分享到这边了,如果觉得水哥的文章对你有帮助,欢迎将文章分享给你身边的朋友。

我们下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789811.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初次用bable遍历vue项目下的中文

利用 babel 找到 AST 中的中文 // vite-plugin-babel-transform.js const parser require(babel/parser) const traverse require(babel/traverse).default // const types require(babel/types) // const generate require(babel/generator).default const fs require(f…

.Net C#执行JavaScript脚本

文章目录 前言一、安装二、执行 JavaScript 脚本三、与脚本交互四、JS 调用 C# 方法五、多线程使用总结 前言 ClearScript 是一个 .NET 平台下的开源库,用于在 C# 和其他 .NET 语言中执行脚本代码。它提供了一种方便和安全的方法来将脚本与应用程序集成,…

使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘

介绍 使用go语言编写的持续下行测速脚本,可用于任意平台使用,通过指定URL清单文本文件自动遍历测速,支持多线程,支持多平台 特性 轻量级,无依赖采用内存进行缓存数据,不占用磁盘(如果内存较小请使用gcd项目),最大程度减少磁盘IO,保护硬盘寿命可自定义最大下载文件…

Hum Brain Mapp:青春期早期的灰质流失可以用白质生长来解释吗?

摘要 关于大脑发育的一个基本谜题是,为什么儿童进入青春期时,灰质(GM)体积明显减少,而白质(WM)体积明显增加。一种流行的理论认为,由于被修剪的突触太小而不足以影响脑灰质体积,因此大脑总体积保持稳定,而…

Puppeteer 是什么以及如何在网络抓取中使用它 | 2024 完整指南

网页抓取已经成为任何处理网页数据提取的人都必须掌握的一项重要技能。无论你是开发者、数据科学家还是希望从网站收集信息的爱好者,Puppeteer都是你可以使用的最强大工具之一。本完整指南将深入探讨什么是Puppeteer以及如何有效地在网页抓取中使用它。 Puppeteer简…

wifi模组Ai-M62-32S的IO映射和UDP透传测试

wifi模组Ai-M62-32S的IO映射和UDP透传测试 基本IO 映射配网示例开启UDP透传示例复位AT查询wifi是否在线配置DHCP静态IP连接wifi连接UDP开启透传 基本IO 映射 对于wifi模组Ai-62-32S来说其模组 IO 引脚(从模组左上角逆时针排序,引脚序号从 1 开始&#x…

LeetCode 2 两数相加

题目 给你两个 非空 的链表,表示两个非负的整数 它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字 请你将两个数相加,并以相同形式返回一个表示和的链表 你可以假设除了数字 0 之外,这两个数都不会以…

小程序需要进行软件测试吗?小程序测试有哪些测试内容?

在如今移动互联网快速发展的时代,小程序已成为人们生活中不可或缺的一部分。然而,面对日益增长的小程序数量和用户需求,小程序的稳定性和质量问题日益突显。因此,对小程序进行软件测试显得尤为重要。 近期的一项调查显示&#xf…

鸿蒙语言基础类库:【@ohos.util (util工具函数)】

util工具函数 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 该模块…

3d已经做好的模型怎么改单位?---模大狮模型网

在展览3D模型设计行业中,经常会遇到需要将已完成的模型进行单位转换的需求。这可能涉及从一种度量单位转换为另一种,例如从英制单位转换为公制单位,或者根据特定的展览场地要求进行尺寸调整。本文将探讨如何有效地修改已完成的3D模型的单位&a…

js实现图片放大镜功能,简单明了

写购物项目的时候&#xff0c;需要放大图片&#xff0c;这里用js写了一个方法&#xff0c;鼠标悬浮的时候放大当前图片 这个是class写法 <!--* Descripttion: * Author: 苍狼一啸八荒惊* LastEditTime: 2024-07-10 09:41:34* LastEditors: 夜空苍狼啸 --><!DOCTYPE …

【CSS in Depth 2 精译】2.4 视口的相对单位

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位 ✔️2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.4 视口的相对单位 前面介绍过的 em 和 rem 是相对于 font-size 定义的&#xff0…

【Pikachu靶场】安装部署通关详解超详细!!!(持续更新)

安装部署 Pikachu靶场&#xff0c;是一个带有漏洞的Web应用系统&#xff0c;在这里包含了常见的web安全漏洞。使用世界上最好的语言PHP进行开发-_-&#xff0c;数据库使用的是mysql&#xff0c;因此运行Pikachu你需要提前安装好"PHPMYSQL中间件&#xff08;如apache,ngin…

【HTML入门】第八课 - 链接的学习(二)

我们上一节学习了&#xff0c;链接的基本知识&#xff0c;有锚点&#xff0c;还有鼠标上移的title属性的作用&#xff0c;这一节&#xff0c;我们继续说链接的知识点。 目录 1 跳转本项目的网页 1.1 修改html文件名 1.2 新建index1.html文件 1.3 修改index1.html文件 1.4…

python7:装饰器

目录 1.调用外部程序os.system-阻塞式调用subprocess-python中的模块 2.装饰器前戏作用域&#xff08;1&#xff09;全局和局部-就近原则&#xff08;2&#xff09;嵌套作用域&#xff08;3&#xff09;内置作用域、变量 高阶函数&#xff1a;函数是最高级的对象&#xff08;1&…

几种不同的方式禁止IP访问网站(PHP、Nginx、Apache设置方法)

1、PHP禁止IP和IP段访问 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.1.4");if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ){die ("您的IP禁止访问&#xff01;");}//禁止某个IP段…

【Linux操作系统-测试】第三节.Linux 系统、网络信息、用户权限命令总结

文章目录 前言一、Linux 系统相关信息命令 1.1 df 命令--查看磁盘剩余 1.2 ps 命令--查看进程 1.3 top 命令--显示进程运行状态 1.4 kill 命令说明 -- 杀死进程二、Linux 网络信息命令 2.1 ping 命令--检查网络是否连通 2.1 ifconfig--显示网络设…

传知代码-图神经网络长对话理解(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 情感识别是人类对话理解的关键任务。随着多模态数据的概念&#xff0c;如语言、声音和面部表情&#xff0c;任务变得更加具有挑战性。作为典型解决方案&#xff0c;利用全局和局部上下文信息来预测对话中每…

数据库-ubuntu环境下安装配置mysql

文章目录 什么是数据库&#xff1f;一、ubuntu环境下安装mysql二、配置mysql配置文件1.先登上root账号2.配置文件的修改 mysql和mysqld数据库的基础操作登录mysql创建数据库显示当前数据库使用数据库创建表插入students表数据打印students表数据select * from students; ![在这…

响应式布局下关于gird栅格布局的一些构思

1、传列数&#xff0c;根据列数计算元素容器宽度 好处是子元素可以写百分比宽度&#xff0c;不用固定某一种宽度&#xff0c;反正知道列数通过计算间距就能得到外层容器的宽度。 举个简单的例子&#xff1a; &#xff08;ps:以下用例皆在html中去模拟&#xff0c;就不另外起r…