基于Python爬虫技术下网络招聘大数据的应用探索与实现

疫情封控,现场招聘举办的难度大增,一定程度上增加了招聘网站的流量,网络招聘越来越成为各公司的招聘首选手段,网络招聘还具有岗位齐全、信息综合,样本数量大、反映企业真实需求、时效性高等特点,可以预见,通过分析研究招聘网站信息来研究就业市场必将越来越流行。

(二)技术方法。

1.Python。

Python是一种简单易学、功能强大的计算机程序设计语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,让人更加容易阅读、调试和扩展,再加上其高度集成了解释性、交互性、面向对象性和丰富的可扩展性等特点,特别是可导入多种模块,大量的第三方科学计算函数库都有对应版本对其支持,使得Python语言在爬虫和大数据处理分析方面优点明显。

本项目,运用python中的requests模块编写抓取软件,实现台州人才网职位JSON源文件的下载;结合json模块实现JSON数据源的解析,再结合xlwings模块进行数据存取。最后,结合pandas、matplotlib和pyecharts等模块进行数据挖掘及展示。

2.网络爬虫。

网络爬虫(WebCrawler),又称网页蜘蛛、网络机器人,是一种按照一定规则,自动抓取万维网数据信息的程序。网络爬虫的基本实现原理及过程:通过互联网获取网页初始URL链接,将初始网页存储至本机,并对初始网页中出现的新URL链接进行爬取,始终重复上述过程,直至满足设定的停止条件。若无停止条件,则直到无法获取新的URL链接为止,以此实现对网页数据的遍历,供后期数据分析使用。

二、爬虫软件设计流程

(一)网站分析。

点击浏览器工具里的开发人员工具,选择network选项卡中XHR标签,再点再F5来刷新网页,可以通过返回信息里的getjobs返回页面的预览为标准的json数据,主要内容如下:

{msg:"success",listcount:1179,pagecount:66,pagesize:18,pageindex:1,…}

可以了解到,网站的职位信息通过AJAX异步请求来组织数据传输。

分析getjobs返回页面的jobs标签,可以看到:

jobs:[{

jobs:[{id:475081,userid:2872929,compid:2872929,workface:"社会人士,",

area:"温岭市"

bdmap:""

company:"温岭市七星电机有限公司"

companyhead:""

,…]

可以得出,该处的键值名分别有workface、company、area、job、edu、salary和language,分别对应职位的职业要求、公司名、工作区域、职位名称、教育要求、工资和外语要求等含义。可见,其数据结构与结构化数据库方式相同,也与excel的行与列的结构形式相似,数据保存方式可以用结构化数据库和excel进行保存,考虑统计分析的使用习惯,本文选用excel来保存数据,因此本文使用xlwings模块进行excel数据存取。

(二)程序设计。

因爬取的数据是以JSON格式组织的,因此程序流程主要分为如下步骤完成

1.利用request获得response对象。

如果网站的请求不是从浏览器发出,则无法获得服务器相应内容,所以爬虫程序需要伪装成一个从浏览器发出的请求,就要求程序在发送Request请求时,需要加入特定的headers。分析在台州人才网的xhr标签的标头,其表单数据部分为:

apiurl:/Open/Api/

comefrom:电脑端

label:website

secret:374472D1C57F388C7171A347459EA738

可以看出apiurl字段为getjobs网页在服务器上的相对路径,一般网站为了防止因为搜索引擎和网络爬虫的爬取,常使用一定的防盗链签名,secret字段就是这种防盗链签名。

根据以上分析,params、headers和response分别如下:

params={

'apiurl':'/Open/Api/',

'comefrom':'电脑端',

'label':'website',

'secret':374472D1C57F388C7171A347459EA738,

}

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)'

'Chrome/86.0.4240.198Safari/537.36'

response=requests.get(url=url,params=params,headers=headers)

2.将response对象返回的数据进行分页爬取。

根据代码段:

result=json.loads(response.text)

得到的就是json数据,分析json数据得到pagecount键值为总页面数。

通过代码段:

forpinrange(result['pagecount']):

这样的for循环,可以组织每个不同的页面的爬取路径。

再通过得到的页面json数据,通过代码段:

foriinresult['jobs']:

可得到完整结构的jobs职位信息。

3.将爬取的数据保存在Excel中。

通过list列表作为单行的jobs数据进行临时保存,代码段:

info_list.append(

…,

i['workface'],i['companyhead'],i['company'],

)

再通过sheet进行填充,因为数据的第一行是标题,填充要从第二行的第一列开始(也就是a2),代码段:

sheet.range('a2').value=info_list

保存为“test.xlsx”Excel工作簿的代码段:

workbook.save('test.xlsx')

三、数据分析

(一)数据处理分析。

通过数据结构了解,有:id、userid、compid、workface、companyhead、companyicon、bdmap、industry、companytype、companysize、companymoney、job、num、welfare、area、edu、salary、worktype、worktime、language、minage、maxage、minsalary、maxsalary、time、refreshtime、hits、status和sort字段,一般公司名称、岗位数量、岗位名称、职位要求和工资水平一般比较重要。

根据job列的岗位名称分析,一周内共有311个岗位,根据岗位名称去重后得到共计273个不同岗位名,比如:研发工程师(产品经理助理)和研发工程师(JAVA开发),同为研发工程师就有针对产品经理助理和JAVA开发的,因此很难根据岗位名称进行分析。薪酬水平也是重要的信息,但《台州人才网》的薪酬数据是10000及以上、8000到9999和7000到7999等范围字段来安排,因此没有办法明确了解更精确的工资数据,尚无法分析平均工资等数据。依据现有数据分析能力,明确分析的重点有:学历要求、工作经验要求、薪酬范围情况、相同岗位名称出现多少和提供岗位数前十的单位等五项。

(二)数据处理设计。

1.学历要求。

学历要求占比可以用环形图来展示,因此可以使用matplotlib.pyplot模块,该模块需要pandas模块支持,也需要一起导入,并导入xlwings模块对excel表格进行支持。

程序代码段:

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

x=df['学历']

y=df['岗位数']

plt.pie(y,labels=x,autopct='%.2f%%',pctdistance=0.85,radius=1.0,labeldistance=1.1,wedgeprops={'width':0.3,'linewidth':2,'edgecolor':'white'})

plt.title(label='',fontdict={'color':'black','size':30},loc='center')

根据环形图可知,当前台州市对大专学历的就业者需求最大,台州市以制造业发达见长,大量的工业企业也正在改进技术,智能制造越来越成为企业的行进方向,工业企业对员工的学历要求也越来越高。

2.工作经验要求。

工作经验要求展示的程序设计几乎同于学历要求。

根据环形图可知,58.7%的岗位要求是有工作经验的社会人士,25.4%的岗位对毕业生开放,毕业生群体的就业难度明显低于社会人士,当前毕业生就业难度比较低。

3.薪酬范围情况。

在对数据的掌握及分析变得愈加重要的当今时代,数据可视化作为提高用户对数据的理解程度、创新架构和增进体验的重要一环,一向富有表现力的Python语言应当可以发挥更大作用,优秀的pyechart第三方库即在这样的背景下诞生。pyecharts库是一个用于生成Echarts图表的类库,Echarts是一个由百度开源的商业级数据图表,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。2021年1月Apache基金会官方宣布ECharts项目正式毕业,成为Apache顶级项目。。

ECharts可提供了常规的折线图、柱状图、散点图、饼图、K线图外,还可用于BI的漏斗图,仪表盘,并且支持图与图之间的混搭。它是一个纯JavaScript的图表库,可以为用户提供直观生动,可交互,可高度个性化定制的数据可视化图表,赋予了用户对数据进行挖掘整合的能力,同时,可以被网站直接使用,更增加了数据显示的途径。本文对薪酬显示部分,引入pyecharts模板进行显示。

salarys=data["salarys"]

sums=data["sums"]

pie=Pie("",title_pos='center',width=800)

pie.add("",salarys,sums,is_label_show=True,is_toolbox_show=False)

pie.render('rose.html')

4.岗位名称关键词情况。

比如:研发工程师(产品经理助理)和研发工程师(JAVA开发),同为研发工程师就有针对产品经理助理和JAVA开发的,很难根据岗位名称进行分析。本文利用Python的jieba模块进行分词,再通过WordCloud模块将岗位高频关键词进行词云化。

ls=jieba.lcut(s)#生成分词列表

ls=s

text=''.join(ls)#连接成字符串

word=WordCloud(

font_path='fz.ttf',#设置字体,本机的字体

background_color='white',#设置背景颜色

max_font_size=150,#设置字体最大值

max_words=2000,#设置最大显示字数

).generate(ls)

image=word.to_image()

word.to_file('2.png')

根据词云图生成原理,词语显示规格越突出、距离中心位置越近词语出现频率越高。从词云图可以看出工程师、专员和助理这三个工种招聘关键词出现次数最多。台州市作为制造业发展较好的城市,对高技能工种需求比较高,高技能人才也更易在台州找到工作。

5.提供岗位数前十的单位。

根据每个企业提供的招聘职位数据,进行合计汇总,并进行排序,可通过xlwings模块绘制柱形图。

chart=i.charts.add(left=200,top=0,width=355,height=211)

chart.set_source_data(i['A1'].expand('table'))

chart.chart_type='bar_clustered'

代码中bar_clustered就是指定了样式为柱形图。

可以看出,台州众凯企业管理咨询有限公司和浙江华诚会计师事务所有限公司招聘的人数最多,分析这两家公司的招聘内容,可以得知其主要负责代招,因为有较多的公司没有专业的人力资源人员,需代招中介公司组织代为初招。

四、结语

本文通过分析招聘网站网页结构,利用Python语言及其强大的第三方库编写爬虫代码,获取相应的职位信息,并对收集到的数据进行清洗整理及分析,结合可视化图表及词云图了解招聘需求等。

本文的不足之处主要有三个方向:一是本文只获取了单个网站的就业信息,无法代表全市及各县(市、区)的全部网络招聘情况,下一步的重点将放在如何进行多数据源的就业信息获取及合并,以获得更加全面的就业信息;二是本文在分析岗位名时也提到,同为研发工程师就有分别针对产品经理助理和JAVA开发的,很难根据岗位名称进行分析,需要借助人工智能进行分析,需要用Python写神经网络进行训练等;三是本文虽获取了就业单位的信息,但没有做好产业及行业的相对应匹配,无法进行产业及行业需求的深层级统计分析,进一步的分析则需要借助一些大数据技术实施。

THE END
1.利用Python抓取招聘平台行业数据的完整教程3.2 爬虫代码实现 3.3 动态加载页面的处理 3.4 数据清洗与分析 3.5 数据可视化 四、总结 一、项目背景与需求分析 1.1 项目背景 招聘平台(如拉勾、智联招聘、BOSS 直聘等)发布了大量关于岗位需求、薪资水平、工作地点等信息。这些数据为分析市场需求、薪资水平以及行业趋势提供了丰富的基础。 https://blog.csdn.net/2201_76125261/article/details/144340706
2.网络爬虫招聘网2024年网络爬虫招聘信息猎聘2024年网络爬虫招聘信息,海量高薪猎头职位等你来选,了解网络爬虫岗位要求、薪资待遇等真实招聘信息,找高薪职位,上猎聘!https://www.liepin.com/zpwangluopachong/
3.爬虫篇(3)——招聘网站招聘信息的爬取智联招聘数据爬取准备(2)-招聘信息页面及企业主页源码解析 网页源码解析 - 智联招聘信息页面 根据招聘列表里面跳转过来的详细招聘信息页面。爬虫再根据这里进行关键信息提取。相 Solomon_Xie阅读 1,942评论 0赞 4 Android - 收藏集 Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activityhttps://www.jianshu.com/p/37b0fd64a938
4.基于网络爬虫的招聘网站数据分析20231123080226.docx基于网络爬虫的招聘网站数据分析 【摘要】 随着互联网的高速发展,人才招聘已经发生了翻天覆地的变化,人们的难题已经不再是如何获取信息了。人们可以通过互联网在网上搜索大量的招聘信息,而如此大量的信息需要耗费用户不少时间。本文通过Scrapy框架爬取前程无忧招聘网站的数据并存储在Mysql 数据库中,同时在爬取时对数据https://max.book118.com/html/2023/1123/8035054022006010.shtm
5.大数据爬虫黑产调查:数百元网购数据采集器,各行业信息订制可查“全国各省市三百多行业数据信息采集”、“python爬虫程序数据采集代写软件,专业老手,定制化服务”……在某二手交易平台上,有不少提供所谓“大数据”采集信息服务的商家,声称可进行“专业爬虫”、“各大网站数据采集、数据处理、数据分析”,还有商家叫卖数据信息采集器,购买软件“无限量”导数据还帮忙介绍“客户。 https://static.nfapp.southcn.com/content/201908/06/c2496979.html
6.招聘网站接口api(招聘网站接口对接需要收费)2、智联招聘爬虫 python? 3、如何获取大数据信息 微信公众号怎么实现微招聘功能 1,打开微信人家网站,注册帐号,完善信息之后,登录后台。 2,登录后台,添加公众号,保存之后去API接口设置,后台有绑定设置招聘网站接口api的教程,回复帮助,会提示绑定成功。 3,进去功能管理,找到高级功能-微招"聘",招聘信息管理,点添加。 https://www.apispace.com/news/post/42697.html
7.Python之爬虫实战采集招聘网站数据内容——前程无忧(1)Python采集招聘网站数据内容——前程无忧(2)运行环境python Python 3、Pycharm、requests 。 其他内置模块(不需要安装 re json csv),安装 好 python环境就可以了。 (3)实现步骤python 1. 发送请求, 模拟浏览器对于url地址发送请求 2. 获取数据, 获取服务器返回响应数据 开发者工具里面所看到 response 显示https://www.cnblogs.com/IvanKK/p/17712670.html
8.用python爬招聘网站哪个好爬?Worktile社区二、选择适合的招聘网站在选择招聘网站时,可以考虑以下几个方面:1. 网站流量:选择流量大的招聘网站,能提供更多的岗位信息。2. 网站结构:选择具有良好网页结构的招聘网站,易于爬取数据。3. 支持反爬虫措施:某些招聘网站为了防止被爬取,可能会采取一些反爬虫措施,需要注意这些情况。 三、编写爬取代码1. 分析网页结构https://worktile.com/kb/ask/101734.html
9.卧底简历倒卖群:你的简历只值8毛,被博彩网赚销售…都盯上了这家公司曾在多个招聘平台大规模招聘爬虫工程师,岗位要求包括设计爬虫攻略和防屏蔽规则。而且,还要解决封账号、封IP、验证码等问题。 爬虫本是正经活儿,但巧达科技的爬虫是为了获取个人信息,这种行为已经构成了侵犯公民个人信息罪,是需要承担刑事责任的。 在今年 3 月份,巧达科技就因非法获取个人信息和贩卖个人信息被警https://36kr.com/p/1724125184001
10.Python爬虫案例50篇第8篇抓取某讯招聘的北京工作岗位在传送门:自己爬取过的20个基础爬虫案例这个案例中,我们讲解过对腾讯招聘信息的抓取,其中好多同学都有疑惑,今天我们来完整的重新复盘一次吧! 网站:https://careers.tencent.com/ 环境:python3.6 开发工具:pycharm 模块:requests,lxml,threading 二、网站分析 https://www.ucloud.cn/yun/123271.html
11.爬虫工资待遇(招聘要求,就业前景)历年招聘职位量占比 说明:爬虫发展前景怎么样?有前途吗?好找工作吗?2024年招聘职位2782个,占全国0.012%,曲线越向上代表市场需求量越大,就业情况相对较好。数据由各地招聘网站统计而来,仅检索职位名称。 招聘学历要求:本科最多 0.5%高中26.2%大专61.1%本科1%硕士0.1%博士11.1%不限 https://www.jobui.com/salary/quanguo-pachong/
12.招聘网人才网找工作求职前程无忧人才网面向全国,提供2024准确的招聘网站信息,为企业和求职者提供人才招聘、求职、找工作、培训等在内的全方位的人力资源服务,更多求职找工作信息尽在前程无忧!https://51job.com/
13.前程无忧最新岗位招聘爬虫简单逆向分析思路2023.3.1吾爱破解51job 招聘岗位爬虫逆向 新人帖,佬勿喷 抓取站点:前程无忧 在线工具:在线HmacSHA256 最近发现之前写的https://www.52pojie.cn/thread-1752766-1-1.html
14.实习僧大学生实习校招求职校园招聘实习僧,专注实习,校招的校园招聘平台。为大学生提供国内外行业巨头在内的40万+企业实习、校园招聘岗位信息。助力大学生职业发展,帮助企业有效招聘,找实习校招就上实习僧。https://www.shixiseng.com/
15.Python爬虫获取全网招聘数据实现可视化分析示例详解python这篇文章主要介绍了Python爬虫获取全网招聘数据实现可视化分析示例详解,实现采集一下最新的qcwu招聘数据,本文列举了部分代码以及实现思路,需要的朋友可以参考下+ 目录 准备工作 软件工具 先来看看需要准备啥 环境使用 Python 3.8Pycharm 模块使用 1 2 3 # 第三方模块 需要安装的 requests >>> pip install requests https://www.jb51.net/python/2925814uz.htm
16.python爬虫学习:猎聘(招聘网站)第3节充八万 获赞5.6w粉丝102 关注 python爬虫学习:猎聘(招聘网站)_第3节 #硬声创作季 充八万 154 11 用python写的4G智能车,手机网页远程控制,硬件和源码开放# python开发板# 物联网案例# 嵌入式 苏州煜瑛微电子科技有限公司 5022 131 【米尔MYD-J1028X开发板试用体验】python实现串口调试助手#硬声新人计划 #硬声https://www.elecfans.com/v/421899
17.Java爬虫爬取某招聘网站招聘信息阿文呐的技术博客随着互联网的普及,越来越多的人开始关注网络上的招聘信息,而传统的求职方式愈发显得不够快捷、高效。爬虫技术,则能够帮助我们快速地获取互联网上的招聘信息,从而提高求职的效率。 本文介绍如何使用Java编写爬虫程序,以爬取某招聘网站的招聘信息为例,并采用代理IP提高爬取效率。文章包含以下几个部分: https://blog.51cto.com/u_16022798/8255622
18.招聘网站数据分析系统本次训练将基于某招聘网站的招聘数据,完成数据采集、数据清洗、数据存储分析及数据可视化的大数据项目工作过程,充分利用数据分析结果,编制数据分析报告,得到这些问题的结论。 本项目从网络爬虫入手,获取招聘网站数据,结合 Hadoop、MySQL、Spark/MapReduce/Hive、Flask/SpringBoot、Echarts 核心技术搭建一个大数据企业岗位需求https://www.educoder.net/paths/hsjmlqyi
19.2024年职位分类招聘信息导航智联招聘是全国性权威人才招聘网站,拥有海量职位招聘信息,搜索了解职位的有效信息,上智联招聘!http://jobs.zhaopin.com/
20.首页腾讯招聘腾讯长期致力于社交平台与数字内容两大核心业务,积极拥抱产业互联网,努力成为各行各业数字化助手,通过连接,提升每一个人的生活品质。 用行动关心你的成长 这里有着富有挑战和影响力的工作内容,完备的职业培训和晋升体系,以及灵活的内部转岗机制,引领你发现更多可能。 迎接每个特别的你 自由包容的文化氛围让你自由发https://careers.tencent.com/
21.互联网求职招聘找工作上拉勾招聘拉勾招聘是专业的互联网求职招聘网站。致力于提供真实可靠的互联网岗位求职招聘找工作信息,拥有海量的互联网人才储备,互联网行业找工作就上拉勾招聘,值得信赖的求职招聘网站。https://www.lagou.com/