一.什么是异步加载?
在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页。浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载新的数据,这样的网站加载方法,称为异步加载。
异步加载又称之为非阻塞模式,当向网页提出请求(request)时,其实网站只是返回了主要样式和部分数据,而持续加载的网页数据是由JS控制,这时新加载出的网页数据与之前的请求是没有关系的,因此称之为异步加载。
二.如何抓取异步加载数据?
以爬取knewone的数据为例,学习连续爬取异步加载网页的方法。
分为以下步骤:
1、观察网页
右键点击网页 —— 点击检查打开监视器 —— 在打开的窗口中选择Network(Network中可查看动态加载数据)—— 选择XHR —— 下拉加载数据,记录数据信息
通过观察可以发现,往下下拉加载的数据越多,动态加载就会陆续出现新的加载成功的页码。点击任意一个新加载的页码,可查询动态加载的数据。点击之后,在新弹出窗口的Headers中,便能找到网页的网址。例如下面的knewone.com网页,新加载的网页在后面添加了page=?的后缀。