数据中蕴藏着大量的价值等待挖掘,这是当前大家都承认的事实。
然而对于我们个人,怎样利用这一点给自己创造价值呢?
挡在这面前的第一点,就是得有数据。
对个人来说,爬虫是获取数据的非常遍历的方式,得到数据之后,我们可以进行一些数据分析、统计,然后用于指导我们的学习、工作、副业的方向。
比如如果你想找一份Python相关的工作,那么可以爬取Python职位列表,然后进行统计分析,比如可以得到如下信息:
-
招聘Python职位的这些公司,所处的行业领域、公司规模、融资阶段、学历要求、工作经验都有哪些? -
招聘Python职位的薪资分布是怎么样的?和其他职位的薪资分布有哪些区别? -
Python职位本身的职位要求,关注哪些关键字,或者说哪些技能要求?
当然职位关键字不只是Python,可以是Java、大数据、推荐算法等等,都可以进行数据挖掘,用于指导自己对职位的宏观把控、学习和努力的方向。
本文介绍怎么爬取北京Python职位的概要信息和简单的数据分析。
确认待爬取的目标
本次待爬取的目标为拉勾网>北京站>Python职位:
首先进入拉勾首页,切换到北京站,输入python搜索:

本次的目标就是爬取职位列表的概要信息:

分析爬取方法
点击页面下方的分页按钮,发现URL并没有变化,一直是https://www.lagou.com/jobs/list_python/p-city_2?&cl=false&fromSearch=true&labelWords=&suginput=

打开查看元素,发现页面的数据来自一个ajax请求,返回的是json

而这个请求,是一个POST请求:

经过尝试,直接请求该json的Url是可以取到数据的,然而拉勾做了很强的反爬措施,需要有几点注意:
-
要请求这个json,需要附带cookie,这个cookie可以通过先请求一下列表页得到; -
每次请求后,可以sleep几秒钟,防止被禁IP
代码实现
-
设置用于获取cookie的url和提交post的Url,以及从浏览器复制headers

-
进行列表页的爬取

-
提取职位信息
这是一个JSON,提取方式类似访问Python的字典

-
查看结果数据

数据分析
使用pandas加载数据

融资阶段分布

需要Python职位多的公司:不需要融资、上市公司、A轮
需要Python职位少的公司:天使轮、C轮、D轮以上
公司规模的分布

50~150人的公司,需要Python职位的最多~其次是2000人以上的大公司
薪资的分布
因为薪资是个区间,处理成只查看区间低薪作为参考值:

最多分布在15K、20K的职位;
融资阶段与薪资的关系
使用seaborn更方便

最穷的是天使轮、C轮的公司,不服来辩。
结语
以上就是我对拉勾网Python职位的爬取和简单分析,虽然数据不多,但是可以探索的点其实还有很多,欢迎大家参与讨论。
而整体上,先爬取数据、然后分析、然后指导实践的思路很清晰。
如果本文对你有帮助,帮忙点赞和在看,后续我会分享更多爬取+分析系列的文章。