大数据分析-基于Python的网络爬虫及数据处理---智联招聘人才招聘特征分析与挖掘的算法实现

概要

  随着科学技术的发展,人类进入了互联网时代,不仅数据量庞大,而且数据种类繁多,Python简单易学, 语法清晰,在数据操作方面有着一定优势,成为了数据采集和可视化领域的热门语言。本论文主要是使用Python来作为开发语言,并对网上招聘信息进行数据采集和可视化,了解和研究网上招聘的现状。采集数据时使用Scrapy抓取网页招聘信息,采集智联招聘职位数据,并将初始数据储存到MySQL数据库中,并得到可视化结果,从而在短时间内了解数据背后的价值与规律。
关键词:Python 数据采集 Scrapy框架 MySQL数据库

一、研究背景与意义

  抓不住关键信息,错失了寻找工作的良机。另一方面,企业的招聘方式已经渐渐跟不上时代的步伐。人才是一个企业甚至国家振兴的动力,人才的招聘和引进关系到一个企业是否能够在激烈的社会竞争中脱颖而出,是否招募到足够的人才决定了企业的兴衰。所以,如何招募到所需要的人才资源成为了一个企业发展过程中最为重要的一环。
  在当今这个网络异常发达的大数据时代,网上招聘已经成了一种流行趋势。但是网络招聘也存在了许许多多的问题和不足,比如:
(1)招聘信息真实度难以分辨
  当今网络招聘面临最大的挑战就是招聘信息的真实度问题。当求职者在招聘网站输入身份信息的时候,有可能导致招聘信息的泄漏和身份信息的曝光,这就是网络招聘发展的过程中所遇到的最大难题。有某些个别的招聘网站由于自身没有足够用来展示的数据信息,就剽窃其他的招聘网页的数据信息来扩充门面。如果这样的活,就会出现一个公司的招聘已经完成了,但那些已经失去作用的招聘信息仍然出现在公司没有发出过信息的网站之上,就变成误导求职者的虚假信息这种情况,耽误了应聘者的时间及精力。
(2)网络招聘服务并不完善
  如今的网络招聘大多都是照葫芦画瓢,原样照搬下来招聘信息就草草了事。网络招聘不仅要对人力资源这一课题有着深刻的认识,还必须需要具备过硬的技术底蕴,而且需要强大的语言组织和策划的能力,这样才能吸引更多的投递简历。
(3)招聘信息的处理难度大
  在互联网技术不断地进步,各种各样网络招聘信息也不断地出现并且让人目不暇接。网络技术的进步虽然能加快信息的推广与普及,但是也会招致应聘者对应聘岗位的过度竞争,使得招聘公司收到繁多的简历。这样的话就会意味着招聘公司在网络招聘方面的投入会不断增加,从而增加招聘公司的负担。
  因此,一份能够自动爬取网上招聘信息并进行整理存储的爬虫就派上了用场。本篇论文采用Python语言编写的一个采集数据和进行可视化处理系统。本设计使用Scrapy框架来采集需要用到的网络招聘信息,然后把爬取下来的数据存入MySQL数据库之中,在对这些数据进行数据可视化处理。就能够通过这些结果来认识理解相关的招聘因素的关系,让毕业生们更加直观的,清晰地了解相关工作的薪资待遇及工作前景。更加方便的选取适合自己的工作职位。招聘网站数据可视化分析平台从各种的招聘信息中提取出有价值的数据,并以数字图像的形式进行直观化展示。把用户从杂乱无章的数据里面解放出来。通过该设计能够更高效地理解和分析据聘数据信息,快速寻找对于自
身有用的信息。使得招聘信息能够更加有效地传述。有利于求职者明确自己的学习方向,掌握需要的工作技能。

二、数据采集

2.1 采集需求

   本篇论文采集的目的网站是智联招聘,需要从其中获取一些职位各种相关的信息,用来为完成后面的数据可视化部分做好准备,需要获取的信息大概包括以下几个方面:各个职位特有的ID,职位所在的城市,职位的薪资水平,职位类型,职位要求学历,职位的标签,职位要求的工作经验等等。

2.2 网页分析

   首先打开电脑浏览器,在搜索框中输入智联招聘,点击并且进入智联网站主页。然后在搜索栏中输入通信工程师,并进行搜索。搜索结果如图3.1所示
  在这里插入图片描述

图 3.1搜索结果图
  本篇设计所需要的网络招聘代码数据并没有在这里出现,其实发现数据数据应该是从别地方的请求传递而来的。在这里需要找到浏览器设置,点击进入开发者模式,点击Network。下一步点击XHR–>点击的requests–>在response中可以看到需要的数据就在这里如图3.2。
  在这里插入图片描述

图 3.2源代码效果图
从图3.2发现这些服务器返回数据格式是是json类型,这样就很方便解析了。

2.3 数据爬取

  因为爬虫抓取的数据量工作较大,所以为了更加高效地进行数据分析,采用Excel的方式工作效率开始明显降低。
  因此,采用数据库技术进行存储是必要的[2]。从这里开始,正式开始构建程序的大体框架,首先需要用代码来模拟虚拟用户向智联网站的服务器发送请求查询数据。正因为如此,这里需要构造相关参数的程序请求头请求智联官网网页,相关的代码如3.3图所示:
在这里插入图片描述在这里插入图片描述

三、数据可视化以及研究结果

3.1 可视化的实现

  在获取到所以需要的数据之后,剩下的最后一步就是可视化的实现,由于从数据库获取到的数据类型是dict类型,我们先用a来等于字典全部的键,用b来等于字典全部的值。做可视化采用Python很方便,使用plt.bar,这样一来就能得到一个直方图,再通过show将图展示出来,并使用savefig将图存储成图片就完成了。

3.2 研究结果

  通过本篇论文设计程序的运行,最终得到了结果图6.1,图6.2,图6.3,图6.4所示:
在这里插入图片描述

图 6.1不同岗位的平均薪资
    从上图可以清楚地看到不同职位之间的薪资水平以及差距,这就大大减少了求职者时间与精力的浪费,为求职者职位挑选提供了可靠地参考。
在这里插入图片描述

图 6.2工作平均薪资的分布水平
  通过图6.2可见,大多数职位的薪资大都集中在1000-5000之间,随着薪水增长,所对应的人数更加稀少。
  在这里插入图片描述

图 6.3薪资与工作经验的关系
  由图6.3所示,招聘人数最多的往往要求工作经历在1到3年之间,而要求10年的招聘岗位最少,这说明,随着互联网技术的发展,各种岗位的更新换代也在不断加速,企业最需要的都是有经验的新生代劳动力。
在这里插入图片描述

图 6.4 招聘企业薪水水平
通过上图6.4可以清晰地看出,社会团体提供的薪资水平最低,民营企业提供的薪资水平最高。

四、总结

  本篇论文主要是利用Python的网络爬虫,通过相应的程序代码,从智联网站上爬取我们所需要的招聘数据,并将这些爬取下来的json类型的网页数据存储进我们建立的关系型数据库(Relational database)MySQL之中,最后通过字段确定,数据获取,可视化实现来展示出我们所需要的结果图,例如平均工资与职位之间的关系,工作经验对于工作薪资待遇的影响等等。
    在这次毕业设计中,因为我对Python这门语言一知半解,加上爬取过程相对来说比较复杂,这导致了我在爬取智联招聘网站时花费了大量的实践与精力。虽然说最后勉勉强强完成了一部分指导老师交代的课题要求,但是还存在着许许多多的缺陷与不足,由于之前从未涉及过Python这门语言和MySQL数据库,再加上我的编程功底确实不尽如人意,这让我在Python的过程中频频出错,漏洞百出。在编程过程中,因为对Python语言的不熟悉,我都是一边从网上搜集资料,一边查阅相关Python的书籍进行代码的编写。这样就会有好多Python底层代码特别容易产生逻辑性
错误,面对这些我充分认识到了自己在编程方面还存在着很多不足,这份程序也有待改进。希望在未来的日子里,我也可以通过不断的学习强化自身能力,不辜负学校老师的教育和指导。

六、 目录

1 绪论2
1.1 研究背景及意义2
1.2 研究现状3
1.2.1 国外研究现状3
1.2.2 国内研究现状3
1.3 论文的结构安排4
2 设计原理4
2.1 应用软件介绍4
2.1.1 Python介绍4
2.1.2 爬取框架选择5
2.2 设计思路6
3 数据采集6
3.1 采集需求6
3.2 网页分析7
3.3 数据爬取8
3.4 进行网站数据的分析9
4 MySQL数据库9
4.1 数据库选择9
4.2 将数据存储进数据库10
5 数据的分析处理11
5.1 字段确定11
5.2 招聘数据的获取12
6 数据可视化以及研究结果13
6.1 可视化的实现13
6.2 研究结果13
7 结论及展望16
参考文献:17
致谢18

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kruskal最小生成树【详细解释+动图图解】【sort中的cmp函数】 【例题:洛谷P3366 【模板】最小生成树】

文章目录 Kruskal算法简介Kruskal算法前置知识sort 中的cmp函数 算法思考样例详细示范与解释kruskal模版code↓ 例题:洛谷P3366 【模板】最小生成树code↓完结撒花QWQ Kruskal算法简介 K r u s k a l Kruskal Kruskal 是基于贪心算法的 M S T MST MST 算法&#xff…

导师坚鹏:厦门火炬高新区数字化转型战略蓝图从规划到落地培训

厦门火炬高新区战略制胜:数字化转型战略蓝图从规划到落地培训 厦门国家火炬高技术产业开发区(简称“厦门国家火炬高新区”)1991年被国务院批准为全国首批国家级高新区,是全国三个以“火炬”冠名的国家高新区之一。目前&#xff0c…

Excel通过下拉菜单,显示不同图片

背景:有的时候需要通过更改下拉菜单来改变对应的 值/ 图片。 如果是数值的话就是我们常常用的Vlookup,这个可以很简单的实现这个功能。(这个如果不知道请自行百度) 但是如果是图片呢?这个就不常见了,那么…

芯片工程系列(5)2.5D 3D封装

0 英语缩写 硅通孔(Through Silicon Via,TSV)硅中介层(Silicon Interposer)物理气象沉淀法(Physical Vapor Deposition,PVD)DRIE、CVD、PVD、CMP等设备CoWoS(Chip on Wa…

【开发环境搭建篇】Nacos的安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…

安卓手机系统跳过app启动广告软件

跳过广告关于此应用声明: 应用利用了安卓系统的辅助功能API,可以读取您手机屏幕上显示的所有内容,并且可以以您的名义进行屏幕点击等操作。* 轻量无广告,不联网,也不需要任何权限;* 请务必在系统设置中开启…

Redis中AOF、RDB和复制功能对过期键的处理

AOF、RDB和复制功能对过期键的处理 生成RDB文件 在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。 例子 举个例子,如果数据库中包含三个键k1、k2、k3&#x…

【目标检测实验系列】AutoDL线上GPU服务器租用流程以及如何用Pycharm软件远程连接服务器进行模型训练 (以Pycharm远程训练Yolov5项目为例子 超详细)

目录 1. 文章主要内容2. 租用AutoDL服务器详细教程2.1 注册AutoDL账号,并申请学生认证(学生认证有优惠,如果不是学生可以忽略此点)2.2 算力市场选择GPU,并选择初始化配置环境2.3 控制台参数解析,并使用相关参数登录Xftp(Windows与…

Office办公软件之word的使用(一)

前几天调整公司招标文件的格式,中途遇到一些问题,感觉自己还不是太熟悉操作,通过查阅资料,知道了正确的操作,就想着给记下来。如果再次遇到,也能很快地找到解决办法。 一、怎么把标题前的黑点去掉 解决办法…

[ C++ ] STL---list的模拟实现

目录 结点类的模拟实现 迭代器类的模拟实现 构造函数 前置与后置 前置- -与后置 - - 与 !运算符重载 * 运算符重载 -> 运算符重载 普通迭代器总体实现代码 list类的实现 list类的成员变量 构造函数 迭代器 insert() erase() push_front/push_back…

【SQL】1527. 患某种疾病的患者(like;通配符)

前述 知识点回顾: MySQL 使用OR在LIKE查询中比较多个字段 %:表示任意字符(包括0个或多个)_:表示任意单个字符匹配空格:直接用空格就行,例如,% DIAB1%可以匹配字符串ACNE DIAB100 …

Python Flask框架 -- ORM模型与表的映射

ORM模型 对象关系映射(Object Relationship Mapping),简称ORM,是一种可以用Python面向对象的方式来操作关系型数据库的技术,具有可以映射到数据库表能力的Python类我们称之为ORM模型。一个ORM模型与数据库中一个表相对应,ORM模型中…

【国家计算机二级考试C语言.2024】学习备忘录

说明 分值 4060100 40分: 这里面有一大堆程序结果选这题,如果手速还可以。那遇到有疑问的情况就自己去倒计算器的ad E上面去打一打。能够跑出来,结果那是100%的没问题。 有些概念题比较讨厌,只能自己去记忆了。要去背诵熟熟的。…

GPU 使用率监测及可视化

1. 使用 nvidia-smi可视化 直接在终端输入nvidia-smi动态查看GPU的使用情况watch -n 0.5 nvidia-smi其中0.5表示每隔0.5秒更新一次,时间可以调整 2. 使用nvitop可视化 2.1 nvitop的使用 (1) 安装 pip install nvitop(2) 查看GPU使用率 nvitop

springboot296基于个性化定制的智慧校园管理系统设计与开发

智慧校园管理系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园综合信息管理难度大&…

maya打开bvh脚本

目录 maya打开脚本编辑器 运行打开bvh脚本 maya导出bvh脚本 maya打开脚本编辑器 打开Maya软件,点击右下角 “脚本编辑器” 运行打开bvh脚本 https://github.com/jhoolmans/mayaImporterBVH/blob/master/bvh_importer.py import os import re from typing impo…

训练不了AI,怎么办?

即使直接训练人工智能(AI)模型对许多人来说可能是一个技术上和资源上的挑战,仍然有多种方式可以参与、利用和推动AI技术的发展,而不必直接参与到模型的训练过程中。以下是一些可以考虑的途径: 1. 使用现有的AI服务和工…

excel处理_多个excel文件合并

data文件夹内,有多个xls文件。每个xls文件格式一致, 表头占两行,表位汇总数据占一行。 表头两行,拼接前第二行设置为表头,且删除第二行。 在python读入的dataframe中,成本表是表头,第一行是线路…

40 openlayers setCenter 之后 绘制了Overlay 地图定位异常

前言 这是之前在 生产环境碰到的一个问题 这个其实就是 业务上一个地图点击点位展示详情, 然后再点击另外一个点位 展示详情, 切换中心店的这个过程 其主要的问题是 使用 openlayers 的 Map.View.setCenter() 了之后, 整个地图的中心点切换到了一个莫名其妙的地方 然后 经…

MySQL多表联查会重复查找记录

在做尚上优选项目时,根据商品id查询商品参加的活动信息。需要根据skuid(商品id)对商品信息表、活动表、活动规则表进行多表联查。 但是发现,查询出来的数据会重复,如下图所示: 后把sql语句放在navicat中进…