1.数据采集
事情的起源是这样的,某个风和日丽的下午… 习惯性的打开知乎准备划下水,看到一个问题刚好邀请回答
于是就萌生了采集下某招聘网站Python岗位招聘的信息,看一下目前的薪水和岗位分布,说干就干。
先说下数据采集过程中遇到的问题,首先请求头是一定要伪装的,否则第一步就会给你弹出你的请求太频繁,请稍后再试,其次网站具有多重反爬策略,解决方案是每次先获取session然后更新我们的session进行抓取,最后拿到了想要的数据。
Chrome浏览器右键检查查看network,找到链接https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false
可以看到返回的数据正是页面的Python招聘详情,于是我直接打开发现直接提示{"status":false,"msg":"您操作太频繁,请稍后再访问","clientIp":"124.77.161.207","state":2402}
,机智的我察觉到事情并没有那么简单
真正的较量才刚刚开始,我们先来分析下请求的报文,
可以看到请求是以post
的方式传递的,同时传递了参数
1 | 复制代码datas = { |
同时不难发现每次点击下一页都会同时发送一条get
请求
经过探索,发现这个get
请求和我们post
请求是一致的,那么问题就简单许多,整理一下思路
关键词:python
**搜索范围:**全国
**数据时效:**2019.05.05
1 | 复制代码#!/usr/bin/env python3.4 |
当然存储于excel当然是不够的,之前一直用matplotlib
做数据可视化,这次换个新东西pyecharts
。
2.了解pyecharts
pyecharts是一款将python与echarts结合的强大的数据可视化工具,包含多种图表
- Bar(柱状图/条形图)
- Bar3D(3D 柱状图)
- Boxplot(箱形图)
- EffectScatter(带有涟漪特效动画的散点图)
- Funnel(漏斗图)
- Gauge(仪表盘)
- Geo(地理坐标系)
- Graph(关系图)
- HeatMap(热力图)
- Kline(K线图)
- Line(折线/面积图)
- Line3D(3D 折线图)
- Liquid(水球图)
- Map(地图)
- Parallel(平行坐标系)
- Pie(饼图)
- Polar(极坐标系)
- Radar(雷达图)
- Sankey(桑基图)
- Scatter(散点图)
- Scatter3D(3D 散点图)
- ThemeRiver(主题河流图)
- WordCloud(词云图)
用户自定义
- Grid 类:并行显示多张图
- Overlap 类:结合不同类型图表叠加画在同张图上
- Page 类:同一网页按顺序展示多图
- Timeline 类:提供时间线轮播多张图
另外需要注意的是从版本0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表(Geo、Map),可自行安装对应的地图文件包。
- 全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
- 中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
- 中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
也可以使用命令进行安装
1 | 复制代码pip install echarts-countries-pypkg |
3.数据可视化(代码+展示)
- 各城市招聘数量
1 | 复制代码from pyecharts import Bar |
- 地图分布展示(这个场景意义不大,不过多分析)
1 | 复制代码from pyecharts import Geo |
- 各个城市招聘情况
1 | 复制代码from pyecharts import Pie |
北上深的岗位明显碾压其它城市,这也反映出为什么越来越多的it从业人员毕业以后相继奔赴一线城市,除了一线城市的薪资高于二三线这个因素外,还有一个最重要的原因供需关系,因为一线岗位多,可选择性也就比较高,反观二三线的局面,很有可能你跳个几次槽,发现同行业能呆的公司都待过了…
- 薪资范围
由此可见,python的岗位薪资多数在10k~20k,想从事Python行业的可以把工作年限和薪资结合起来参考一下。
- 学历要求 + 工作年限
从工作年限来看,1-3年或者3-5年工作经验的招聘比较多,而应届生和一年以下的寥寥无几,对实习生实在不太友好,学历也普遍要求本科,多数公司都很重视入职人员学历这点毋容置疑,虽然学历不代表一切,但是对于一个企业来说,想要短时间内判断一个人的能力,最快速有效的方法无疑是从学历入手。学历第一关,面试第二关。
但是,这不代表学历不高的人就没有好的出路,现在的大学生越来越多,找工作也越来越难,竞争越来越激烈,即使具备高学历,也不能保证你一定可以找到满意的工作,天道酬勤,特别是it这个行业,知识的迭代,比其他行业来的更频密。不断学习,拓展自己学习的广度和深度,才是最正确的决定。
就业寒冬来临,我们需要的是理性客观的看待,而不是盲目地悲观或乐观。从以上数据分析,如果爱好Python,仍旧可以入坑,不过要注意一个标签有工作经验,就算没有工作经验,自己在学习Python的过程中一定要尝试独立去做一个完整的项目,爬虫也好,数据分析也好,亦或者是开发,都要尝试独立去做一套系统,在这个过程中培养自己思考和解决问题的能力。持续不断的学习,才是对自己未来最好的投资,也是度过寒冬最正确的姿势。
招聘数据获取可在公众号:Python攻城狮 后台回复 招聘数据 即可。
本文转载自: 掘金