上次分析了抓取智联招聘网站遇到的坑,最后使用selenium模拟的方法抓取到了智联的招聘数据,但是我发现通过分析智联招聘的ajax接口,模拟ajax请求直接获取json数据这种方法更简单。
分析网页ajax接口:在搜索框输入python,点击搜索,打开浏览器开发者模式,点击network,点击XHR过滤出来ajax请求
第一页:
这是搜索之后第一页的信息,可以看到很多参数,直接观察好像并不能查看出哪些参数对我们有用,那我们接着点击下一页继续分析
这是点击到第二页的参数,可以看到相比于第一页,这次的参数多出来一个start参数,数据为60。接着点击第三页,继续查看它的参数。
可以看到这里start参数变成了120,不难看出,start参数是控制页面每次显示的数据从第几条开始,pageSize为每页显示多少条数据,固定为60。到这里就已经明确可以通过urlencode将参数拼接,通过控制start的参数传入来控制我们要抓取哪些页的数据。
分析Preview:
通过对Preview的观察可以发现,返回的json数据中有一个data字段,data中包含有results字段,点击results字段可以发现网页上的工作名称,工作薪资,工作详情页的地址都在其中,那么我们就可以通过response.json方法获取到网页返回的json数据,从中解析出我们想要的数据。
代码思路:1.分析网页的ajax接口,需要传入哪些参数2.