可狱可囚的爬虫系列课程 12:在网站中寻找 API 接口(补充)(王者荣耀英雄信息抓取)

我们前面讲过了怎么在网站中找接口,如何在开发者工具中判断是不是接口,但是凡事都有例外,今天我还要再针对此问题做一次详细描述。本次就以王者荣耀官网 https://pvp.qq.com/ 为例,带大家进行学习。

一、找英雄接口



如上图,我们今天要找的接口,在“游戏资料”的“英雄资料”中,要抓取所有英雄的基本信息,还是老样子,先打开开发者工具,尝试寻找接口。

经过寻找,我们发现王者荣耀这里的接口很明显,就是名为“herolist.json”的这个文件,但是有同学可能会质疑了,老师你上次说过要找状态码 200 的,这次你怎么找 304 的呢?
我们先一起复习一个小知识点,在可狱可囚的爬虫系列课程 02:爬虫必会概念中我介绍了状态码 304:“客户端有缓存的文档并发出了一个条件性的请求,服务器告诉客户端,原来缓存的文档还可以继续使用,没必要再重新加载了”。王者荣耀官网就采取了这个一个机制,所以在此大家看到的就是我找的并不是状态码 200 的接口,这个功能浏览器是可以关闭的,我们在浏览器中关闭一下。

二、禁止缓存

可狱可囚的爬虫系列课程 12:在网站中寻找 API 接口(补充)(王者荣耀英雄信息抓取)_第1张图片
可狱可囚的爬虫系列课程 12:在网站中寻找 API 接口(补充)(王者荣耀英雄信息抓取)_第2张图片
如上图,大家打开开发者工具的设置页面,找到“Disable cache(while DevTools is open)”选项并勾选,这个选项的意思就是“当开发者工具处于开启状态时禁用缓存”,记得重新打开一下开发者工具,此时你再看,“herolist.json”文件的状态码就不再是 304 而是 200 了。
可狱可囚的爬虫系列课程 12:在网站中寻找 API 接口(补充)(王者荣耀英雄信息抓取)_第3张图片
这算是网站机制和浏览器的 Buff 加成了,不过也别讨厌这个机制,毕竟这是为了让你更快的加载页面而设计的,本篇文章介绍的知识点你学会了吗,如果 OK,那么请大家自行编写代码将此接口中的信息提取出来,我们下篇文章再见!

你可能感兴趣的:(爬虫,python,爬虫)