ajax抓取网页内容(【Ajax】Ajax请求的请求和请求的原理是什么? )
优采云 发布时间: 2021-11-12 20:18ajax抓取网页内容(【Ajax】Ajax请求的请求和请求的原理是什么?
)
阿贾克斯介绍:
有时我们使用Requests抓取页面时,结果可能与我们在浏览器中看到的不一样。可以看到浏览器正常显示的页面数据,但是得到的响应并没有对应的响应。内容。
这样做的原因是Requests获取的是原创HTML文档,浏览器中的页面是页面经过JavaScript处理后生成的结果。这些数据的来源有很多:
今天我们将讨论Ajax加载类型的网页数据。
阿贾克斯的概念
Ajax,全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。对于 Ajax 渲染的页面,数据加载是一种异步加载方式。原创页面最初不会收录某些数据。原创页面加载完毕后,会向服务器请求一个接口来获取数据,然后将数据进行处理后才呈现在网页上,这实际上就是发送一个ajax请求。
这就是为什么我们不能直接使用 requests 来请求页面的实际内容。
这时候需要做的就是分析网页后台向界面发送的Ajax请求,然后用Requests模拟Ajax请求,就可以成功捕获了。
了解了ajax的原理后,一切都变得有点头绪了~
阿贾克斯观察
对于 Ajax 请求,我们已经在现实生活中遇到过。我来形容你知道:“当你在浏览网页或APP的时候,当你把进度条拉到最下面的时候,你会看到进度条突然跳到中间,下面出现新的内容”
其实这就是Ajax的使用。
今天,我们用微博作为爬取对象。
网址 = ""
浏览器发起请求
老规矩,进入开发者模式。然后在Network下,点击XHR进行过滤(只过滤掉Ajax请求的请求响应消息)
我们先看第一个入口信息,观察它的Response
于是我们进行了测试,将进度条拖到底部,发现浏览器和服务器暗中进行了消息交互,效果如下: