贾柠瑜* JIA Ning-yu 摘 要 当今时代是被数据支配的时代,大数据背景下“数据分析师”这一岗位备受欢迎,长期处于供不应求的
状态。“拉勾网”是我国权威的互联网行业招聘平台,北京市是中国的首都,科技发达,互联网公司云集,“数据分析师”的需求在全国范围内较集中且具有代表性,因此本文将以python作为工具爬取“拉勾网”工作地点为“北京”,搜索条件为“数据分析师”的详细岗位数据,进行数据清理和可视化操作,从求职者关注的多方面进行分析,为有意向的相关从业者提供借鉴和参考。
关键词 Python;爬虫技术;可视化;数据分析师;拉勾网
doi:10.3969/j.issn.1672-9528.2019.04.018
1 爬虫过程1.1 网页解析
选用Chrome浏览器,打开相应网站,检查网页源代码,查找后发现职位信息不在“Documents”中,而是保存在“Network”中“XHR”中的json文件中。这也是“拉勾网”的第一个反爬措施:ajax异步传输,即访问网页的时候服务器将网页框架返回给客户端,在与客户端交互的过程中通过异步ajax技术传输数据包到客户端,呈现在网页上,爬虫直接抓取的话信息为空。针对以上反爬措施解决方法是加上头部信息(请求头)和请求参数,headers中的信息获取在json文件的“Headers”中,定义get_json(url,num)函数,其作用为从网页获取json,其中url为“Headers”中的“Request URL”,num为总页数。
运行后发现报错,错误内容为“您操作太频繁,请稍后再访问”,这是“拉勾网”第二个反爬措施:“BAN COOK-IES”,即服务器对每一个访问网页的人都set-cookie,给其一个cookies,当该cookies访问超过某一个阀值时就ban掉该cookie,过一段时间再放出来。因此针对以上反爬措施,解决方法是在拉钩网上登入账号,获取登入后的Cookie信息来请求。
1.2 计算要抓取的页数
定义get_page_num(count)函数,其作用为获取总页数,其中count为总职位数,运用math模块的ceil方法向上取整,每页15个职位,由于“拉勾网”的页数限制,最多只显示30页数据,因此需要通过条件语句来确定总页数。* 对外经济贸易大学信息学院 北京 100029
1.3 对一个网页的职位信息进行解析并返回列表
定义get_page_info(jobs_list)函数,其作用为获取整个的岗位信息的列表,一条职业数据列表中包含“compa-nyFullName”,“companyShortName”,“companySize”,“financeStage”,“district”,“positionName”,“workYear”,“education”,“skillLables”,“salary”,“positionAdvantage”十一项内容。1.4 主函数
先设定页数为1,获得总页数,再运用for循环获取每页的数据,最后将数据转化为dataFrame保存为csv文件,对应列名为“公司全名”,“公司简称”,“公司规模”,“融资阶段”,“区域”,“职位名称”,“工作经验”,“学历要求”,“技能要求”,“工资”,“职位福利”。2 数据清理2.1 剔除实习岗位
通过观察爬取出的450条数据,其中有19条数据“职位名称”中包含“实习”,由于本文针对全职岗位,因此应将实习生岗位剔除,代码如下: df.drop(df[df[‘职位名称’].str.contains(‘实习’)].index, inplace=True)2.2 “工作经验”处理
由于csv文件中的数据均为形式是字符串形式,因此需要使用正则表达式将字符串转化为列表,再取区间的均值,其中如果“工作经验”为“不限”或“应届毕业生”的匹配值为空,将新增“经验”列设置为0,如果匹配值为一个数值,则返回该数值,如果匹配值为一个区间,则取平均值计入新
2019年第4期64计算机应用技术信息技术与信息化增“经验”列。2.3 “工资”处理
与“工作经验”类似,工资也通过正则表达式转化为列表计入新增列“salary”,经资料和实际情况调查发现实际工资水平一般是工资区间的前25%,计算后计入新增“月工资”列。将清洗后的数据保存以便检查,数据量为431。 3 统计描述3.1 工资描述
通过describe方法获取北京市数据分析时这一行业的工资水平,并运用plt对象描绘出工资分布直方图,结果如图所示:
图1 工资描述
图2 工资分布直方图
由图可知,数据分析师的月工资均值在19.7千元左右,中位数也达到18.75千元,对比2018年发布的《2018年人才趋势报告》,平均月薪行业排行榜互联网与金融行业位居第一和第二,月平均工资达到10.8千元和10.0千元,可见数据分析师在互联网行业中的地位处于中上游。同时,据公布的2018年城市平均薪资,北京市平均薪资为11.6千元,数据分析师的平均薪资超过北京市平均薪资,也可见数据分析师这一职业在各类职业中的受欢迎程度。从直方图中也可看出工资集中分布在在15-20K的职位最多,在20-30K的职位其次。经分析15-20K的职位以建模为主,30K以上的职位以数据挖掘、大数据架构为主。数据分析散布在各个行业,但在高级层面上涉及到数据挖掘和机器学习,在IT业有长足
652019年第4期的发展。3.2发展前景
就数据分析师的职业发展前景来看,运用plt对象将招聘公司所处的融资阶段绘制成饼图形式如下所示:
图3 招聘公司融资阶段分布
对于求职者来说,其实与投资者面临相同的选择,求职者可以通过公司的融资阶段来判断公司的发展前景。天使轮
阶段的公司占比1.9%,风险高但是发展空间和上升空间大。A轮公司占比7.7%,已经有产品原型,可以面对用户投放市场,但公司收入较低。B轮公司占比9.7%,相对成熟,有比较清晰的盈利模式。C轮公司占比12.5%,融资后利润将较快增长,基本成熟。上市公司与不需要融资的公司占比将近半数,可维持稳定增长的盈利。由此可见,数据分析师这一岗位的需求公司一部分处于蓬勃发展阶段,一部分处于稳定上升阶段,总体来看发展前景较为可观,求职者可根据自身偏好选择创业型或者稳定型的企业。3.3 区域分布
运用plt对象将招聘公司所属区绘制成饼图形式。
图4 岗位区域分布
由此可见,北京市数据分析师这一岗位主要集中在朝阳区与海淀区,以小窥大,这也印证了北京市互联网公司的分布情况,目前北京的互联网企业主要分布在三大区块,分别是中关村地区(海淀区),上地西二旗地区(海淀区),望京地区(朝阳区)。以上信息便于求职者合理考虑上下班出行方式,房屋购置或租用位置等。3.4 职位福利
对于求职者,对一份工作的选择除了兴趣和薪资之外,最关注还是员工福利这一方面了。鉴于《中华人民共和国劳动法》中对员工福利的规定,各大公司在招聘是也将职位福利作为吸引人才的杀手锏。将“职位福利”这一列数据汇总,生成一个字符串,使用jieba模块将字符串分割为单词列表,按照词频生成词云实现python可视化。结果如图所示:
图5 岗位福利词云
可见五险一金、六险一金、平台、弹性工作、团队等在职位福利里出现的频率相对较高,求职者可根据此职位的福利来判断自己是否能够接受此岗位,同时也能掌握岗位能为自己带来什么。从词云中也可看出数据分析师的职位特点:团队协作,弹性工作,技术优先,前景光明,待遇良好。3.5 技能要求
只有了解一个岗位的技能要求才能有针对性的进行求职准备,获取“技能要求”的词云,如下所示:
图6 岗位技能要求词云
信息技术与信息化计算机应用技术由此可见,数据分析师的主要技能要求为SQL数据库语言,数据挖掘,数据运营,数据库管理,商业分析,商务智能(BI),SPSS数据分析,数据可视化,Hadoop分布系统架构等。求职者可根据兴趣爱好以及难易程度掌握相关知识技能,提高与职业要求的契合度,同时提升自身竞争力。4 总结
以上整个流 程阐述了“拉勾网”反爬虫的解决方法和爬取过程,较为全面的分析了求职者对“数据分析师”这一岗位较为关心的薪资水平,地区分布,技能要求,发展前景和岗位福利五个方面,为广大有意向的求职者提供参考借鉴,减少信息的不对称性,使求职更高效,匹配性强。
参考文献
[1]王碧瑶.基于Python的网络爬虫技术研究[J].数字技术与应用,2017,(5):76.
[2]陈伟龙,邱梁泉,张小华.基于网页文本的数据处理类岗位需求分析[J].信息记录材料,2018,19(11):219-220.
[3]钱程,阳小兰,朱福喜. 基于Python的网络爬虫技术[J]. 黑龙江科技信息,2016,(36):273.
(收稿日期:2019-03-22)
2019年第4期66
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务