作者:进击的西西弗斯
本文链接:blog.csdn.net/qq_42216093…
版权声明:本文为作者原创文章,未经作者同意不可转载
1.项目说明以及流程概要
- 爬取网站:智联招聘(https://sou.zhaopin.com/)
- 开发环境:Python3.7(Pycharm编辑器),全流程通过代码实现
- 爬取时间:2021/3/30 上午1:13 的实时招聘信息数据
- 爬取城市:共12个,上海、北京、广州、深圳、天津、武汉、西安、成都、南京、杭州、重庆、厦门
- 主要用到的python库:
requests
、BeautifulSoup
、pandas
、matplotlib
、seaborn
- 说明:本人大四,想在毕业后进入数据分析行业工作,于是,为了更深入地了解数据分析职位相关信息,我使用python在智联招聘网站爬取了我国主要的12个城市的“数据分析师”职位的全部招聘信息数据,包括薪资、公司名称以及规模、学历要求、技能要求、工作经验要求等数据,对数据清洗和整理后进行可视化分析,得到了薪资分布、不同学历占比、技能词频等图表,目的是能从繁杂的招聘数据中直观地看到有价值的信息。
2.爬取网站数据并整理为csv
流程概要:
根据url
和相关参数获取网页的html
,对html
解析后正则提取我们需要的标签信息,最终以dataframe
二维表形式保存为csv
文件,其中要注意:智联招聘在未登陆状态下无法爬取职位数据,于是我们可以先登陆网站,然后在浏览器开发者模式下找到需求头信息(Request Headers
),复制下来后通过copyheaders
库转换为字典后加入requests
请求的headers
参数中。(建议不要直接使用我的代码,虽然可以运行但很多人运行可能会被网站检测出来,然后可能会被反爬甚至封禁我的cookie)
代码:(附注释)
1 | python复制代码#!/usr/bin/python3 |
结果:
附结果csv文件下载链接
3.对数据结果进行可视化
流程概要:
先对数据结果进行清洗,salary属性下的字段都是类似于“8千-1.5万”这种无法进行后续统计和处理的字符串,我们需要将其全部修改为数值结果从而方便后续处理,此处我使用pandas
和re
(正则表达式)把每个字段的薪资统一处理成了范围的中间值。关于薪资的缺失值,我本来打算用所在城市薪资的平均值替换处理,但考虑到后续可视化分析只使用到平均值,替换处理与否并不影响结果,故没有再做处理。由于时间关系,还有其他空值、异常值等数据清洗并没有再继续处理。最后,使用matplotlib
和seaborn
进行数据可视化,共得到5个结果图
代码:(附注释)
1 | python复制代码#!/usr/bin/python3 |
结果:
1). 在这12个城市总体的薪资分布情况:(直方图+核密度分布函数)
可以看出,数据分析职位整体上薪资分布大致符合左偏态分布,薪资分布的密集区间大约在8k-15k之间,而平均薪资12.4k在整个IT行业中大致处于中等薪酬位置
2). 在不同城市的职位招聘数量分布情况:(已降序处理)
可以看出,一线城市北上广深位列榜首,结果符合常理,接下来是成都、杭州、西安,如果想去二线城市发展,这几个城市应该重点考虑。
3). 在不同城市的薪资分布情况:(已降序处理)
可以看出,在不同城市间的薪资分布大致与上面的职位数量分布相似,但出乎意料的是,广州被二线城市杭州、南京超越,这可能是由于杭州的阿里巴巴公司等以及南京的苏宁等这些大公司拉高了杭州和南京的数据分析薪资水平,也可能是爬取的智联招聘网站的数据样本有一定的局限性,具体原因有待进一步考查。
4). 招聘中对学历要求的占比:
可以看出,本科占比最大,为66.5%,其次是大专,而其余学历加起来只占比7.1%,因此,数据分析职位目前对于学历要求相对较低,适合于不打算读研的本科毕业生等人群。
5). 职位技能要求关键词频统计:
可以看出,数据分析职位主要需求技能是Python、SQL、数据挖掘、大数据、数据建模等,因此熟练掌握这些技能能够增加求职中的核心竞争力。
有问题欢迎留言交流!
如果你对Python数据分析、数据挖掘等内容感兴趣,欢迎关注我!
本文转载自: 掘金