其实是个萌新的“爬虫+tableau”练手,因为关于这次操作的所有知识在王隐在录音的文章里都齐全了,但亦步亦趋跟着教程做一份一模一样的练手意思不大,于是就萌生了把爬虫对象从“少数派”变成“拉勾”的心思。
1. 基本流程
基本就是:数据采集➡️数据清洗➡️可视化➡️再次清洗
a. 数据采集方法没啥好说的,web scraper + Chrome 傻瓜式爬虫
打开拉勾网主页,搜索人力资源,将地点设置为上海,其他条件设为不限,月薪集工作性质同样不限,观察后发现可以采集到如下职位信息:
- 职位名称
- 工作地点
- 职位薪资
- 经验要求
- 学历要求
- 公司名
- 公司性质
- 职位关键词
- 公司关键词
tips:实际拉勾上1个职位信息是由2个 div 框拼接而成(图中蓝色框和红色框)
b. 关于数据清洗,因为从Chrome保存的是 .csv 文件,所以我们直接使用 Excel 打开该文件即可,原始数据清洗前如下:
可以看到清洗前数据基本没法看……到这一步,在爬数据之前的计划就非常重要了,比如说我们在最开始计划出现如下几种可视化图形:
- 职位的地理分布
- 不同轮次公司的地理分布
- 公司规模与职位薪资和公司所在轮次的关系
- 不同职位的行业分布
- 不同行业同一类在招职位的薪资关系
- 薪资与工作经验的关系
- ·······
所以我们会发现在原始数据中缺少一些字段,比如:
- 对应职位的薪资
- 对应公司的地理位置(经纬度)
- 直接可用的轮次、规模、经验要求
但好在 Excel 本身就是非常强大的数据处理工具,我们可以使用自带的各类函数、功能去做数据的清洗,比如 leftb() 、 vlookup 、 分列 等,最后,经过清洗的数据如下:
可以看到,数据经过清理之后就变得友好多了,重点几个tips:
- 文本的区划、商圈如何直接转变为经纬度?
我是用了 Map Location 的服务,直接复制进去批量获得经纬度 - 平均薪资怎么来的?
因为本身获得的数据是文本体现的范围,所以干脆上下限取平均值,也差不离 - 工作年限和公司人数呢?
和平均薪资一样。。。 - 行业、轮次怎么搞出来的?
分列配合 ctrl+F 大法,轻松加愉快(特别注意⚠️:5-15人使用“空”替换“人”后,会自动变日期5月15日)
c. 数据可视化:
先吹一波 tableau ,因为感觉对用户尤其是我这样的小白用户特别友好,网络上(尤其简书里)有非常多优质的教程,同时官方也几乎是竭尽所能的来帮助用户,不信点这里看例子🌰(这个🌰真的可以点……)。
刚才🌰里是我在思索“如何将地理位置定位到tableau附带的地图里”,最终效果可以看下面的 薪资-地理分布 和 轮次-地理分布 。
当然前面也说了,我是手动将地址批量转换为经纬度的,没有像 community 里说的用 python 跑个脚本,因为我们总共数据就500+条(主要是我不会),而当数据达到万甚至百万、千万这个量级的时候就瞎了,别的不说,Map Location 转化经纬度先跑个2天再说。
所以朋友们,超轻量级的可视化分析还是要善于利用前人写好的工具,少走弯路。
来看看结果
- 首先是薪资-地理分布,(除非碰到我当时卡了一下的步骤,基本操作流程就略过了)可以看到是一个非常典型的符号地图,根据颜色深浅我们能大致了解上海不同地区“人力资源”类职位薪资对比情况。
注意圈出来的黑圈部分,最深的位置,对应陆家嘴商圈,而整体看下来,像黄浦、徐汇、大虹桥、五角场的平均薪资基本是第一梯队,一定程度上符合我们的预期。
- 而在轮次-地理分布中,我们能看到不同轮次公司在上海的基本分布,从天使轮到上市,包括未融资和不需要融资的公司,都使用不同的颜色在地图上标出。
可以看到,第一感觉是分散,而实际在 tableau 中通过点选不同轮次的图例,也确实发现各家的分布也都是一样的松散,也进一步从这个角度证实了前几天公众号中的观点:上海没有市中心
- 至于轮次-规模/薪资图中,我们会发现一些有趣的现象:
- 上市公司的人员规模几乎与D轮的水平相当,是整个不同轮次体系中的第一梯队;
- 但是上市公司在招的人力资源岗位的平均薪资却仅高于未融资状态的公司,落在了倒数第二位;
- 那么对应2种猜测:上市公司的人力资源岗位不值钱 or 上市公司的高端人力资源岗位相对稳定(作为人力资源从业者当然希望是后者了)
- 另外的信息请各位看图说话
- 对于职位名称图:
其实一开始想做个词云,但发现爬取的职位名称主要是词组,没时间去琢磨如何取词、分隔,简单做了个图,发现前三大主流招聘职位为:人事专员、人事助理、HRBP —— 划重点:几乎可以等同视为搜索热词
- 对于职位景气程度,私以为可以如此定义:同一家公司同一类职位需求数量越高,则该职位越景气。
结果大家也看到了,除了拥有公司名字的几家公司之外,绝大部公司的招聘职位需求都在1-3个之间。
sosad
- 关于不同轮次公司的行业分布及该行业的平均市场薪资,基本就是图里这样了,可以看到:
- 绝大多数上市公司产生在金融及互联网金融行业;
- 但该行业人力资源的平均薪资并不是最高的;
- 最高与最低分别花落硬件与广告营销行业,原因很值得探讨;
- 而大多数 D轮 公司在做O2O业务,符合直观感受;
- 其他信息请看图说话。
- 最后,薪资与工作经验的关系:
- 因为前期数据清洗,我们将工作经验简单加权平均后,会有一些误差,直接导致部分数据位于同一水平轴上,但同样给我们带来一些讯息
- 首先,在不同工作经验段,薪资数据的离散程度非常不同,比如在“0年”、“4年”和“7.5年”,我们会发现,后面2个年份是薪资分化程度较高的年份,人力资源从业者职业生涯相对重要的2个年份也就昭然若揭
- 其次,tableau自带的趋势分析,模拟了一次函数下薪资和工作年份的关系,附带公式,可以大致测算一下自己的薪资水平与平均值的关系
p.s : 这篇文章完全是新手之作,时间匆忙的情况下,有错误和疏漏在所难免,希望各路大佬不吝指出,谢过。
p.p.s : 特别说明,文章中所有数据皆为19年5月18日,在拉勾网站搜索“人力资源”,筛选地址为“上海”所对应的数据。
最后的最后,感谢大家的时间,未完待续。