基于前程无忧的互联网就业分析

                 基于前程无忧数据的互联网就业分析
                                                                                      by 木烨

此文系作者公共选修课《数据科学引论》大作业,作为大二非计算机类学生,且此作业为考试周完成,时间较紧张,如有不严谨之处,还望体谅。

本文将从简要介绍,数据爬取,数据清洗,数据可视化分析,结果展示五个方面进行展示。

一.简要介绍


问题背景
互联网行业作为目前公认的高薪岗位,互联网就业也有着很大的市场需求,每年无数毕业生进入互联网行业就业
问题阐述
哪些城市对互联网职业薪酬需求更大?提供的薪酬更加诱人?

掌握哪一种编程语言在就业时更具优势,可以获得更高的薪酬?

学历、工作经验对于就业薪酬又有着怎样的影响?
从这些现实问题入手,分析互联网就业的现状。

数据集:从51job.com抓取数据进行分析统计。

主要使用:scrapy,正则表达式,SVM与随机森林预测,Kmeans聚类,BIRCH聚类,词云图,可视化方法
 

二.数据爬取

利用爬虫从51job.com(前程无忧)网站搜集相关信息。
(网址链接为:https://search.51job.com/)

先后尝试爬取了拉勾网、BOSS网与前程无忧网这三个国内较大的招聘网站。

经过多次碰壁发现,拉勾网与BOSS或因为所需信息位于js中,或因为反爬虫机制过强导致爬虫易使得IP被封,而前程无忧网反爬虫机制远弱于BOSS与拉勾网,相对而言数据收集的难度,但因其可爬取数据并不整齐,因此数据清洗需要较多的工作。


爬虫具体步骤如下:

1.首先对https://search.51job.com/ 爬取得到spider1.csv,由于此网站仅含有少量信息,其余信息隐藏在每个职位对应的招聘小网页。所以先从这一网站爬取具体职位对应的有详细介绍的网页网址

2.对与小网页进行爬取,得到spider2.csv,网站示例如:https://jobs.51job.com/beijing/119317470.html?s=01&t=0 

3.将两个csv文件进行合并得出data.csv数据集

爬取数据共计十万组,涉及北京、上海、广州、深圳、杭州、成都、重庆、哈尔滨、西安、武汉十座城市,展示如下:

三.数据清洗


   1.原始爬取数据有job(职位名称)、web(网站)、company招聘公司、companyweb(公司详细介绍网站)、place(工作地点)、salary(工资薪酬)、time(发布时间)、jtap(词条,其中包含地点、工作经验、学历要求、招聘人数等内容)、text(员工福利介绍)、key(关键词)、duty(职责与工作描述)

   2.由于原本网站的限制,工作经验、学历要求、招聘人数全部位于jtap一列,用“|”隔开,用正则表达式提取关键词

   3.将不规整的原始薪酬数据转化统一格式,并提取数字,将万/年、元/天、千/月统一转化为万/月

   4.从job(职位名称)、key(职位关键词)、duty(对职位需求的描述)匹配所需的编程语言,并存储在不同的列中

   5.删去多余的web、companyweb等列,进行一些格式调整

整理之后数据如下,education为学历要求,money为薪酬(统一格式化为月/年),city为城市,num为招聘人数,exp为工作经验要求,之后共有19种语言构成邻接矩阵,1代表该职位对此种语言有需求。

匹配语言有:'c++','java','c#','python','go','php','matlab','swift','lua','perl','delphi','kotlin','ruby','typescript','vba','rust','haskell','visual basic','sql'

四.可视化分析


1.探究不同城市对互联网职业的需求量

从下面柱状图可以看出,上海、深圳、广州是对互联网职业需求最大的城市,相比而言,而哈尔滨的需求只有这三个城市的1/20.
大的城市,确实有更大的机遇

2.探究就业对学历的要求

可以看出,明确要求博士学位的很少很少,明确要求硕士学位的也只有3%左右,本科毕业便可以跨进大多数职业。

而大专以下,初中、中技、中专在互联网职业就业较艰难。


3.探究不同城市的就业薪酬
北京就业平均薪酬最高,其次是上海、深圳、杭州、广州。


哈尔滨就业薪酬明显低于其它城市。

4.探究薪酬和教育的关系
博士薪酬明显高于其它


 

 5.工作经验与薪酬
可以看出,抛开经验为0的数据,其余基本呈线性分布

经验为0的一般为大学应届毕业生,故并不遵循这一规律

6.使用词云图展示公司福利


7.不同语言的要求数量

java是最热门语言,或者说招聘要求最多的编程语言

8.不同语言的平均薪酬

19种语言平均薪酬相近,语言在于其次,关键在于语言的掌握程度。

五.结果展示

首先仅提取薪酬、教育、经验、城市、编程语言这几项,并将学历、城市用数字替换,方便后续处理。

第一部分,我以75%数据作训练,25%数据进行监测,分别使用了线性预测、SVM预测与随机森林预测三种预测方法,尝试利用教育、经验、城市、编程语言等预测薪酬,但拟合结果并不理想,可能是薪酬很难直接利用这几项完成预测的缘故,故不作展示。

第二部分使用kmeans算法与birch两种聚类方法对19种语言进行聚类

其中kmeans算法轮廓系数输出为0.62左右,birch算法输出轮廓系数为0.95,故使用birch拟合结果,将语言种类聚类为60种,由于数据集来自招聘网站,可以认为这六十种编程语言常作为“捆绑需求”,也可以为编程者学习语言提供一些知道,输出结果如下:

 六.总结

总体来说,基本达到预期目标

1.完成对前程无忧网站的爬取,获取足够数量的数据集,并进行数据清洗

2.使用8张可视化图反应一些现实问题

3.尝试根据参数预测薪酬并不成功,薪酬并不简单的是几个招聘因素所能决定,并且实际就业薪酬与招聘时书写的

薪酬范围可能不同,例如部分高薪职位虽然无学历要求,实际录取竞争时往往选择硕士以上学位。

4.对19种语言进行聚类,提供一种根据现在掌握的一或两种语言,判断下一步学习哪一语言有利于就业
 

 

 
在进行基于Python前程无忧数据爬取与分析时,首先需要使用Python爬虫库(如BeautifulSoup、Scrapy等)来获取前程无忧网站上的招聘信息。通过爬取网页的方式,我们可以获取到包括职位名称、薪资、地点、要求等在内的各种招聘信息数据。 接下来,可以利用Python的数据处理和分析库(如Pandas、Numpy、Matplotlib等)对爬取到的数据进行处理和分析。首先,我们可以利用Pandas库将爬取到的数据存储到数据框中,进行数据清洗、去重、缺失值处理等操作。然后,可以利用Numpy库进行数据的统计分析,如求取平均值、中位数、方差等。最后,结合Matplotlib库可以对数据进行可视化展示,如绘制招聘岗位的薪资分布图、地域分布图等。 除此之外,我们还可以利用Python机器学习和自然语言处理库(如Scikit-learn、NLTK等)对招聘信息进行文本分析和挖掘。通过文本分析,我们可以对招聘信息中的关键词、技能要求等进行提取和统计,从而帮助我们更好地理解市场对人才的需求。 总之,基于Python前程无忧数据爬取与分析,可以通过爬虫库获取招聘信息数据,通过数据处理和分析库进行数据处理和统计分析,通过机器学习和自然语言处理库进行文本分析和挖掘,从而更好地了解就业市场的动向,为个人求职和企业招聘提供有益的参考。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值