数据中蕴藏着大量的价值等待挖掘,这是当前大家都承认的事实。
然而对于我们个人,怎样利用这一点给自己创造价值呢?
挡在这面前的第一点,就是得有数据。
对个人来说,爬虫是获取数据的非常遍历的方式,得到数据之后,我们可以进行一些数据分析、统计,然后用于指导我们的学习、工作、副业的方向。
比如如果你想找一份Python相关的工作,那么可以爬取Python职位列表,然后进行统计分析,比如可以得到如下信息:
-
招聘Python职位的这些公司,所处的行业领域、公司规模、融资阶段、学历要求、工作经验都有哪些? -
招聘Python职位的薪资分布是怎么样的?和其他职位的薪资分布有哪些区别? -
Python职位本身的职位要求,关注哪些关键字,或者说哪些技能要求?
当然职位关键字不只是Python,可以是Java、大数据、推荐算法等等,都可以进行数据挖掘,用于指导自己对职位的宏观把控、学习和努力的方向。
本文介绍怎么爬取北京Python职位的概要信息和简单的数据分析。
确认待爬取的目标
本次待爬取的目标为拉勾网>北京站>Python职位:
首先进入拉勾首页,切换到北京站,输入python搜索:
![](https://imgkr2.cn-bj.ufileos.com/370a301b-ba9f-4826-a573-a4d13f27f4b6.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=KhHFN%252BuxZtivnAq4xiXoryEeCik%253D&Expires=1600098043)
本次的目标就是爬取职位列表的概要信息:
![](https://imgkr2.cn-bj.ufileos.com/262e31aa-c809-47a6-87d7-8253c3e3c48b.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=FqC%252F4g6FrQHXXRm3QixUm8CtUWw%253D&Expires=1600098086)
分析爬取方法
点击页面下方的分页按钮,发现URL并没有变化,一直是https://www.lagou.com/jobs/list_python/p-city_2?&cl=false&fromSearch=true&labelWords=&suginput=
![](https://imgkr2.cn-bj.ufileos.com/350f0592-891e-426f-af23-1be99d131299.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=A2DCdMPZ686tLkDbU5XHZh8Q4H8%253D&Expires=1600098185)
打开查看元素,发现页面的数据来自一个ajax请求,返回的是json
![](https://imgkr2.cn-bj.ufileos.com/0c92c559-83a5-477d-a8e9-dc97f3fdcb39.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=8Ace%252FwVjT7jC9knUHD1CpjqTlfo%253D&Expires=1600098254)
而这个请求,是一个POST请求:
![](https://imgkr2.cn-bj.ufileos.com/f69c1ca3-9688-432d-ad99-3d361ca49193.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=P3ntroxbS4SXaVUK8ZbxUnNmJIY%253D&Expires=1600098304)
经过尝试,直接请求该json的Url是可以取到数据的,然而拉勾做了很强的反爬措施,需要有几点注意:
-
要请求这个json,需要附带cookie,这个cookie可以通过先请求一下列表页得到; -
每次请求后,可以sleep几秒钟,防止被禁IP
代码实现
-
设置用于获取cookie的url和提交post的Url,以及从浏览器复制headers
![](https://imgkr2.cn-bj.ufileos.com/ad828270-e665-4dfb-96a5-b3a185b68429.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=NRf6GIvmxO5ecb1JgON2qCIWO2Q%253D&Expires=1600098735)
-
进行列表页的爬取
![](https://imgkr2.cn-bj.ufileos.com/c5639d61-6000-4e16-9ce3-9cf007a9bbee.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=0SxXdRcb3%252BnW14QdDjuUXUR9e0M%253D&Expires=1600098776)
-
提取职位信息
这是一个JSON,提取方式类似访问Python的字典
![](https://imgkr2.cn-bj.ufileos.com/7c032ad9-59b4-486d-aab3-f699ab531236.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=sTSqfKrb7gJWoKwpCk4Up61gNTE%253D&Expires=1600098800)
-
查看结果数据
![](https://imgkr2.cn-bj.ufileos.com/5f9effb0-c507-42f5-9251-f28cfe673734.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=l24XYQBMVdvR3DA3FoG2u0%252FZtu4%253D&Expires=1600098837)
数据分析
使用pandas加载数据
![](https://imgkr2.cn-bj.ufileos.com/9927b11f-dab2-4514-8b24-c362e628b2cd.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=fmvjOjBprFfzHQ0%252F1hGHk41oDSY%253D&Expires=1600099316)
融资阶段分布
![](https://imgkr2.cn-bj.ufileos.com/3571a0b8-cfcf-45b9-82f6-64b30ea63f29.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=QWgNgLPtsmXqorOxBQjJWAwNCZw%253D&Expires=1600099487)
需要Python职位多的公司:不需要融资、上市公司、A轮
需要Python职位少的公司:天使轮、C轮、D轮以上
公司规模的分布
![](https://imgkr2.cn-bj.ufileos.com/17356542-7397-423b-9076-10a1d26efbed.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=c%252FTjeHWZ8aT%252BjIVUr5EdIv23G7Q%253D&Expires=1600099592)
50~150人的公司,需要Python职位的最多~其次是2000人以上的大公司
薪资的分布
因为薪资是个区间,处理成只查看区间低薪作为参考值:
![](https://imgkr2.cn-bj.ufileos.com/25a0b9ff-5c40-4785-af73-1704730f9230.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=NTfewWEIxgWhvb691k6R2prwCjY%253D&Expires=1600100441)
最多分布在15K、20K的职位;
融资阶段与薪资的关系
使用seaborn更方便
![](https://imgkr2.cn-bj.ufileos.com/7e485a08-a87d-4098-8ed8-e4fae13ec0ce.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=06PCK8UhRGUGfOusqzI6NxtOCQo%253D&Expires=1600100505)
最穷的是天使轮、C轮的公司,不服来辩。
结语
以上就是我对拉勾网Python职位的爬取和简单分析,虽然数据不多,但是可以探索的点其实还有很多,欢迎大家参与讨论。
而整体上,先爬取数据、然后分析、然后指导实践的思路很清晰。
如果本文对你有帮助,帮忙点赞和在看,后续我会分享更多爬取+分析系列的文章。