昨天准备爬拉钩的python职位数据,用了老办法bs4+requests发现数据是空的,心情so down!!经过网上的查询才明白,拉钩使用Ajax技术,用bs4查找html元素是找不到数据的。今天我总结下学习过程,也算是巩固自己的知识了!!!
分析网页
登陆拉钩网站,打开开发者功能
我们先用requests发送请求并保存一个html,来查看数据
|
|
运行代码试一下,代开lagou.html,我们看到职位信息数据是没有的
接下来,我们再观察下Chrome开发者工具的NetWork一栏,类型选择XHR,找到下面这个链接,我们可以看到有Ajax、Json几个关键字,点击Preview
按顺序分别点开红框,就得到我们想要的数据啦
现在来试着写一下,注意这里的请求是post,带上表单,改变请求头的数据
|
|
Run一下,返回的数据就是我们想要的啦!!!
翻页
我们观察下表单内有一个pn参数,这就是页码,大家可以跳转页面来观察下数据的变化
|
|
这样就把16页链接都打印了出来
最后,附上一张爬下来的数据截图
爬取拉钩的思路就是这样,完整代码在GitHub,欢迎大家访问!!!!!!!假如觉得有用点个Star噢!!互勉!!!!!!!!!!