第六章 Ajax数据爬取

有时候我们在用 Requests 抓取页面的时候,得到的结果可能和在浏览器中看到的是不一样的,在浏览器中可以看到正常显示的页面数据,但是使用 Requests 得到的结果并没有,这其中的原因是 Requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是页面又经过 JavaScript 处理数据后生成的结果,这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在了 HTML 文档中的,也可能是经过 JavaScript 经过特定算法计算后生成的。

对于第一种情况,数据的加载是一种异步加载方式,原始的页面最初不会包含某些数据,原始页面加载完后会会再向服务器请求某个接口获取数据,然后数据再被处理才呈现到网页上,这其实就是发送了一个 Ajax 请求。

照 Web 发展的趋势来看,这种形式的页面越来越多,网页原始 HTML 文档不会包含任何数据,数据都是通过 Ajax 来统一加载然后再呈现出来,这样在 Web 开发上可以做到前后端分离,而且降低服务器直接渲染页面带来的压力。

所以如果我们遇到这样的页面,如果我们再利用 Requests 等库来抓取原始页面是无法获取到有效数据的,这时我们需要做的就是分析网页的后台向接口发送的 Ajax 请求,如果我们可以用 Requests 来模拟 Ajax 请求,那就可以成功抓取了。

所以本章我们的主要目的是了解什么是 Ajax 以及如何去分析和抓取 Ajax 请求。

results matching ""

    No results matching ""