爬取 Boss 直聘网上海区域 PHP 职位信息数据并分析

最近两周做了一个小项目,爬取招聘网站的数据,并做了图形可视化数据显示,之前一直在找工作,但是一直碰壁,不是简历投了没反应,就是对方告诉你不合适,哎,于是就想能不能抓取招聘网站的数据,然后分析下,而且方便自己筛选信息,更加清楚知道市场上的情况。

在线预览的地址
http://yehe.37he.cn/job/#/weekline
项目的地址
https://github.com/xianyunyh/spider_job

项目数据直接爬取boss移动端的界面,原因有两个,
第一、移动端有对应的分页的ajax接口。
比如
https://www.zhipin.com/mobile/jobs.json?page=2&city=101020100&query=PHP

第二、移动端界面元素少。dom解析稍快。

数据可能比招聘网中的数据少,因为做了过滤,比如搜索处理的PHP,可能还有java等职位,也有的是职位标题中,不含PHP。boss的搜索中,好像是只要jd中有php,都显示。所以做了过滤。

boss直聘反爬虫厉害,检测到了就是封ip,24小时,期间也用tor搭建了匿名代理,但是太慢。也自己搭建了几个http代理,但是都被封了,没办法,只有笨方法,爬慢点(sleep ),让程序认为是正常人在浏览。定时爬取的任务交给定时任务:每天10点和晚上22点各爬一次。

好了废话不多说了。先上图介绍下实现的。

一周职位发布次数趋势

file

上图是一周发布职位的趋势图,可以看到,最近应该是招聘淡季,每天最多不超过40个职位,也可能是因为boss直聘发布少的原因。数据我过滤了标题中,不是PHP的职位,搜出来的PHP,只要是jd中含有php,都在搜索列表,所以我过滤掉了那些信息。可能会遗漏一些,比如标题是架构师等的职位。这些比较少。每周更新职位信息,基本上都是这种趋势图。大家投简历可以在周2、3、4投递!

工作年限分析

file
上图就是工作年限的绘图结果,可以看出,基本上市场上需要的还是3-5年的和1-3年的开发者比较多,还是年轻好吧。还年轻的小伙伴,要加油了。年轻就是资本,可不要枉费哦。过了5年的小伙伴,也不要沮丧,毕竟还是有一部分份额的。虽然少了点!但是10年以上的,就少了,估计都是管理层了!

工作年限和薪资比例

file
从上图可以看到,3-5年的平均薪资在18000左右,5-10年的平均薪资在23000. 以后跳槽的时候,可以根据这个价格,作为参考,以免得自己吃亏。10年以上的需求少,只有几个,平均薪资也不是特别高。1-3年和3-5年 这个区间增长的薪资比较快。还在这个区间的小伙伴要加油,实现自己的价值!

学历分析

file
上图可知,基本上招聘的信息本科占了59%,专科占了33%. 说明下,学历不限的情况,我把一些职位中要求是高中,中专,技校等全划到学历不限了。硕士生招的少,可能硕士写程序的比较少了吧。也有可能硕士都不会在网上求职的吧。 学历在我国是一个敲门砖,所以一个好学历,,一个本科让你可以多20%个机会。所以机会不等人,没有的,可以抓紧考一个!

学历和薪资分析

file
可以看出来,大专和本科的学历平均薪资还是差别不大的。也就是在2000左右,而本科和硕士就差别大了。所以呀,多读书,还是有用的。至少让你薪资提升不少。

发布职位最多的公司

file
想了解下,上海哪些公司最缺人,一直招人。图中显示,前两名远远高于后面的。感觉很奇怪,查看了一下,第一个公司是一家培训机构(大家懂滴),第二个公司,好像在宝山,成立没半年,一直招人。
可以看到,腾讯也一直在招人,感觉自己不错的小伙伴,可以去试试。腾讯那边要求(全日制本科),否则过不了HR的。

技术词云图

file
技术词云图,全部都是从jd中取出来的,使用jieba分词,然后最后汇总了下。图中加黑色的都是出现频率比较高的技术词语。php、mysql、linux、JavaScript、css。php 三大框架(laravel、yii、thinkphp)、redis出现最多的。laravel出现的频率次数,仅次于 PHP、Linux、Mysql。所以用laravel的还是很多的。

技术词语,选择是全部英文的,里面可能出现了一些的不是技术的词语,比如vip等,词语全部做了小写显示,比如PHP,全部汇总到php中。html5则只取html词组。

总结

最后放下项目的地址
https://github.com/xianyunyh/spider_job
在线预览的地址
http://yehe.37he.cn/job/#/weekline

使用到的技术栈:

  • 爬虫采用的python的scrapy框架、分词用的jieba分词、pymongo库、pyquery库、redis
  • 数据存储存储在mongodb中。
  • 前端写了两版。第一版用的boostrap+jquery。第二版用的Vue。用了vue的 图表用的是v-charts、词云图 d3.js
  • 后端接口,用的PHP写的,因为写的快,就没用框架,直接加了一个mongodb/mondodb的拓展。单文件写的。后期可以会改写。会增加其他的接口

数据只爬了两周左右可能数据有点少,结果仅供参考! 爬虫中也提供了51job的爬虫,lagou的爬虫,智联的爬虫,有兴趣的可以去爬其他网站的。然后对比下。

未来这个项目可能会做些什么呢?可能会做一个查询的东西,选择各大网站,对应薪资范围,显示对应的数据,或者订阅最近的职位信息,一键投递,boss直聘自动回复等。啊哈哈,尝试写个职位匹配的算法,推荐职位信息,

如果你有有意思的idea,可以给我留言,我看能不能实现!

本文章首发在 Laravel China 社区

闲云野鹤