Network
记录的是从打开浏览器的开发者工具到网页加载完毕之间的所有请求。
Network面板常用功能:
(1)清空按钮Clear:用于清空请求列表。
(2)保留记录Preserve Log:勾选后会保留请求记录,常用于发生页面跳转时保留前一个页面的所有请求记录。
(3)请求类型过滤器:ALL表示查看全部,点击其他的只会展示对应类型的请求。爬虫中常用的有ALL、XHR、Img、Media。
名称 | 含义 |
---|---|
All | 全部类型 |
XHR | XMLHttpRequest类型 |
JS | JavaScript类型 |
CSS | CSS类型 |
Img | 图片类型 |
Media | 音视频类型 |
Doc | 文档类型 |
(4)常用信息:展示了一些常用的请求信息,比如请求的名称、状态码、类型、数据大小和耗时等。
名称 | 含义 |
---|---|
name | 请求名称 |
status | 状态码 |
type | 请求的类型 |
size | 响应数据的大小 |
time | 请求的耗时 |
XHR
全称XMLHttpRequest,是浏览器内置的对象。浏览器想要在不刷新网页前提下加载、更新局部内容时,必须通过XHR向存放数据的服务器发送请求。
XHR中数据的技巧:
(1)通过请求的名称和数据大小来缩小查找范围,一般请求的名称会和数据内容相关,并且数据大小会比其他请求要大一些;
(2)当我们要找的数据有分页时,我们可以先将请求记录清空,再点击下一页,这样就只会出现评论数据的请求了。
在请求头中加入referer
字段,表示请求是由合法的页面发出的。
为了让 API 地址看起来简洁明了,我们将地址的查询字符串参数以字典的形式传递给了 params
参数:
JSON
(JavaScript Object Notation)是一种轻量级的数据交互格式。
JSON
建构于两种结构:键值对的集合 和 值的有序列表,分别对应Python里的字典和列表。JSON
是在编程语言之间通用的数据格式,是一种标准,规定了基本数据结构的写法,不同编程语言拿到后解析成自己对应的数据结构即可。
Python字符串使用单引号或双引号没有区别,但JSON中,字符串必须使用英文的双引号来包裹。
将JSON转换成Python中的字典和列表,只需调用json()方法
即可:
首先,打开准备爬取的网页,然后查看该网页的源代码,检查需要的数据是否在网页源代码中。
如果在的话,说明该网站是一次性将所有数据加载出来的,就可以通过 BeautifulSoup
解析、提取对应的数据。
如果不在的话,说明该网站的数据是通过 API 加载的,则需要在 Network
中的 XHR
里查找数据;可以通过 一个一个查找、根据名称和大小查找、清空请求列表并获取新的请求查找 这三种方法找到数据。