最近有不少程序员又开始找工作了,为了了解目前技术类各职位的数量、薪资、招聘公司、岗位职责及要求,我爬取了拉勾网北上广深4个城市的招聘数据,共3w条。职位包括:人工智能(AI)、大数据、数据分析、后端(Java、C|C++、PHP、Python)、前端、Android、iOS、嵌入式和测试。下面我将分两部分进行介绍,第一部分是数据抓取;第二部分是数据分析。如需源代码在公众号(见文末)回复关键字 职位 即可。如遇到图片打不开的问题,可访问:https://juejin.im/post/5e83edfbf265da47d537ba74
数据抓取
这里我并不是通过传统的抓网页,解析HTML代码的方式爬取数据,而是用 Charles 软件抓取拉钩APP请求数据的接口实现。
大概的流程是启动Charles -> 手机连接Charles代理(二者需处于同一个局域网)-> 打开APP请求数据->观察Charles截的包,从中找到我们想要的接口
首先,找到搜索职位的接口
/v1/entry/positionsearch/searchPosition
这是一个 POST 请求,我们还要找到请求的 header 和 body,最关键的 header 和 body 如下
header:
'X-L-REQ-HEADER': '{"deviceType":150,"userType":0,"lgId":"11835BCC-8815-456A-A094-64FB2B9323EF_1585362240","reqVersion":73600,"appVersion":"7.36.0","userToken":"xxx"}'
'content-type': "application/json"
其中,userToken字段每个不一样,需要自己抓包确定
body
{"tagType": "", "isAd": "1", "showId": "", "district": "", "keywordSource": 0, "keyword": "数据开发