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

本文主要是介绍基于Python的网络爬虫及数据处理---智联招聘人才招聘特征分析与挖掘的算法实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

收藏和点赞,您的关注是我创作的动力

文章目录

    • 概要
  • 一、研究背景与意义
  • 二、数据采集
    • 2.1 采集需求
    • 2.2 网页分析
    • 2.3 数据爬取
  • 三、数据可视化以及研究结果
    • 3.1 可视化的实现
    • 3.2 研究结果
  • 四、总结
  • 六、 目录

概要

  随着科学技术的发展,人类进入了互联网时代,不仅数据量庞大,而且数据种类繁多,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

这篇关于基于Python的网络爬虫及数据处理---智联招聘人才招聘特征分析与挖掘的算法实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/387861

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time