如何使用爬虫分析Python岗位招聘情况-阿里云开发者社区

开发者社区> 青衫无名> 正文

如何使用爬虫分析Python岗位招聘情况

简介:
+关注继续查看

Life is short, you need Python。Python 是一门很优雅的语言,用着挺舒服的。所以就在想,现在的 Python 开发的岗位招聘,公司们需要什么样的人才?要有什么样的技能?以及对应的市场如何?

所以,我又有了一个大胆的想法。爬取了前程无忧上 Python 关键字的招聘岗位,地区锁定在中国四个一线城市,北上深广。选取 top650 条招聘岗位带 Python 关键字的招聘信息进行数据分析。

岗位分布

650 条招聘信息中,各城市岗位数量分布如下图。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

上海 228 是最多的,北京 202 排在第二,两者都超过了 200,深圳和广州就和上海北京差得有点多了,分别只有 115 和 91,另外还有 14 个是异地招聘的。当然数据只是针对这前 650 条数据而言!不过总体上也差不多,后面的招聘信息都只是在岗位要求里提到 Python 而已,并没有专门招聘 Python 开发者。

职位要求

提取了所有的职位要求,进行分词统计,清理没意义的词,统一英文字符,如 Python 和 python 不区分大小。

提取前 50 个中文词汇以及出现次数,这个词频排序挺有趣的,要来好好研究一下

1、(开发,2100)(熟悉,1842)(经验,1268),这是最多的三个。熟悉其实也就是相当于有经验了。表示程度上的词也是频频出现(熟悉,1842)(良好,521)(熟练,349)(精通,331)。其实我一直不太理解精通这个词,什么程度上的熟练才能称为精通。个人感觉应该对精通这个词怀有敬畏之心。
2、(团队,424)(参与,263)(合作,219)(沟通,292)(协作,108),这个更多的是强调团队开发,参与到团队开发以及合作的重要性,毕竟现在的项目的规模基本上已经大到不是一个人就能完成的。顺便提一下 Git 出现了刚好 100 次。
3、(分析,262)(维护,253)(优化,239),这三个词应该就是对个人能力的综合描述了,具有分析问题的能力,维护和优化项目的能力,一个成熟的项目后期的维护和优化是很重要的。

看看没排进 top50 的其他词汇
1、(专业,199)(架构,173)(研发,170),这几个词看起来就厉害了,毕竟架构这个不是随便就能搞搞。
2、(爬虫,233)(抓取,140)(爬取,28)(正则表达式,31),刚需刚需!!!
3、(独立,153)(责任心,123)(强烈,69)(踏实,26)(抗压,17)(认真,26)(热爱,53)(意识,78)(逻辑,58)这应该都是所要求的品质和能力了吧。
4、(数据结构,106)(算法,198)(设计模式,33)回忆起了被《数据结构》和《算法导论》统治的恐惧吗?
5、(分布式,97)(分布式系统,29)(分布式计算,7)用心感受一下就行了。
6、(开源,112),(Github,29)这个也可以看出公司对开源的这方面的重视了,这是一种学习能力的体现,也是对程序和代码的热爱。了解这个也能大概证明自己不是一个只会闭门造车的人。

接着来看一下英文词汇,统计了 top20 的情况,看看作为一个 Python 开发者还需要什么技能,好帮助我们点亮自己的技能树。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

毫无疑问,Python 遥遥领先,这是必备的。比较靠前的有 Linux, Django, Web, MySql, Redis。Web 也是 Python 很火的一个领域,相对应的 Django, Flask, Tornado 这样的 Web 框架才会得到这样的重视。Linux 这个也是刚需阿,虽然我一直在 Windows 下开发 Python,但我也挺喜欢 Linux 的,没事也折腾折腾。前端的三剑客 HTML, CSS, JavaScript 也赫然在列,说到底还是 Web 的原因。其他语言如 Java 和 C 也有所提及。数据库的也出现了三个,数据库是每个程序开发人员都应该掌握的技能,毕竟数据最优的存储方式是放在数据库里。API 这个词提醒着我们要多看文档,这个其实也就涉及到英语阅读的问题,Python 有着一个很棒的社区,很多优秀的类库,大部分的类库都有详细的文档,而大多数都是英文的。所以拥有一定的英语阅读能力是非常重要的,不要指望所有库类都能有人给自己翻译中文文档。

所有词语前 200 生成词云

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

一直觉得词云还是得黑色背景视觉冲击更大一点。

职位情况

然后对职位进行分析,这个问题让我头可疼可疼了呢,因为没有一个规范,导致招聘信息上的职位写的是各式各样,举个例子吧。Python 高级开发工程师和高级 Python 开发工程师是一个意思吧。Python 开发工程师,python开发工程师,PYTHON工程师这三是一个概念吧。有的甚至写着Python攻城师???以为自己萌萌哒??? 这样统计起来也比较麻烦,找不到好办法,只能先进行词频统计,然后剩下的再进行手动归类。最终被我归为 20 个类别。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

在爬虫和数据分析这块还是有一定的市场的,开发工程师是总的一个范称吧,这个有特别要求高级和中级的。听说大数据现在也挺火的?

薪酬情况

下面来谈谈对应的薪酬情况,在这 650 条信息中,有 9 条是没具体提到工资的,另外还有 6 条是按天算工资的,不过这个是针对实习生的。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

除去这 15 条,在剩下的 635 条里,我们来进行具体讨论。

工资的单位有 万/月,万/年,千/月 三种,而且所写明的工资是一个范围,如 1.2-1.5 万/月,10-20 万/年。这让我没办法统计,因为这不是一个数,是一个范围而且这是一个字符串。
最后,我按一个具体的比例处理所有的工资情况。[x, y] 为其范围,取 x + (y - x) * 0.4 的值。拿 1.0-1.5 万/月来说就是取其范围的差(1.5 - 1.0)= 0.5,来乘以一个比值 0.4(为什么是 0.4 呢,这个是我个人估计的,毕竟我还没参加过工作。因为刚开始工作可能就是底薪,后来才慢慢增上去的。就假设认为均值应该是这个)最后得到 1.0 + 0.2 = 1.2,1.2 就是所取的一个权重,就当是该岗位的工资。将处理完的数据存进数据库。

先来看看总体的情况

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

大体上呈现一个先升后降的趋势,[1.1 - 1.5] 万/月是最多的一个范围,> 2.5 万/月的也还不错,有 26 个招聘职位。

看看各个城市的具体情况。

北京

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

上海

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

深圳

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

广州

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

从整体来看北京的待遇最好,其次是上海,接下来才是深圳和广州,真的符合北上深广排名??? 
因为各个城市的总的岗位数量不同,所以不能单从哪个范围的数量大而且比较,那样没多大意义。所以应该看比例。可以明显的看到 在 2.1 - 2.5 以及 > 2.5 这两种颜色块上,北京和上面所占的比例是要高于深圳和广州的。而在 0 - 1.0 这个颜色块上,广州是最大的,几乎都接近一半了。比较这四个后,很容得出北京的结构是最合理的,底层的偏少,上层的偏多,中层占了绝大部分。广州反之。

还有一个异地招聘的

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

薪酬和职位对应情况

再来看看高薪酬对应的是什么职位。

总体top10:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

北京top10

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

上海top10

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

深圳top10

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

广州top10

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

北京确实强,实力碾压广州,广州的 top1 在总体中排名第 24。

在各自的薪酬 top10 中,高级这个词出现频繁,资深也有几个。物以稀为贵,有技术不怕没人招。能达到这么高的工资的,基本上也都应该要有多年的开发经验了吧,不然从何而谈资深。这个是时间累积下来的的经验的资本。
书还是要多读的,掌握多一项技能就多一个优势。也不要局限于只是专业方面的书,全方位、多角度、深层次、立体化提高自己的知识水平,也能让自己腹有诗书气自华,万一找到女朋友了呢?

最后

一开始只是想简单研究一下,后来发现数据的分析比数据的爬取要难得多,不过有难度才有意思。一定要提一句,正则表达式真是瑞士军刀阿,在处理文本数据上真真是极好的!


原文发布时间为:2017-05-24

本文作者:陈键冬

本文来自云栖社区合作伙伴“Python中文社区”,了解相关信息可以关注“Python中文社区”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用单进程、strace、gdb调试PHP错误
使用单进程、strace、gdb调试PHP错误PHP一般是在FPM的呵护下运行的,但是某些情况下进程异常崩溃会导致502。下面是解决思想: 1. 单进程运行: php -d display_errors=1 -S 0.
1545 0
针对巴基斯坦的某APT活动事件分析
本文讲的是针对巴基斯坦的某APT活动事件分析,2017年6月,360威胁情报中心发现了一份可疑的利用漏洞执行恶意代码的Word文档,经过分析后,我们发现这有可能是一起针对巴基斯坦的政府官员的APT攻击事件,
1605 0
分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
我发布的「正则表达式入门以及高阶教程」,欢迎学习。 课程简介 正则表达式是软件开发必须掌握的一门语言,掌握后才能很好地理解到它的威力; 课程采用概念和实验操作 4/6 分隔,帮助大家理解概念后再使用大量的实例加深对概念的理解; 实例操作是对概念最好的理解,也是学习新语言最有效的办法; 在课程中也穿插着大量软件开发的技巧和大家分享; 应该是把晦涩的正则表达式讲解的最生动的课程; 掌握了正则表达式后,您一定会觉得这是一门最值得掌握的语言。
886 0
Python数据分析之anaconda安装和使用
今天开始学习Python数据分析了,说到Python数据分析,大家都会推荐使用anaconda,但作为一个初学者,总是很多疑虑,但在实践中解决了一部分,先和大家分享分享。
940 0
Python数据分析之一元线性回归
问题 制作一元材积表,不懂林学的可能不知道,如图,也就是构造材积和胸径间的关系,这里采用了python的一元线性回归方法(本人用spss做了幂函数非线性回归,效果最好)。
676 0
Python数据分析之方差分析
问题 设某苗圃对一花木种子制定了5种不同的处理方法,每种方法处理了6粒种子进行育苗试验。一年后观察苗高获得资料如下表。已知除处理方法不同外,其他育苗条件相同且苗高的分布近似于正态、等方差,试以95%的可靠性判断种子的处理方法对苗木生长是否有显著影响。
744 0
带你和Python与R一起玩转数据科学: 探索性数据分析
本系列将介绍如何在现在工作中用两种最流行的开源平台玩转数据科学。先来看一看数据分析过程中的关键步骤 – 探索性数据分析。
2991 0
+关注
3598
文章
840
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载