什么是Ajax
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。使用Ajax加载的数据,即使使用了JS,将数据渲染到了浏览器中,在 右键-查看网页源代码
还是不能看到通过Ajax加载的数据,只能看到使用这个url加载的html代码。
获取Ajax数据的方式
- 直接分析ajax调用的接口,然后通过代码请求这个接口
- 使用Selenium+chromedriver模拟浏览器行为获取数据
方式 | 优点 | 缺点 |
---|---|---|
分析接口 | 直接可以请求到数据。不需要做一些 分析工作。代码量少,性能高 | 分析接口比较复杂,特别是通过一些js混淆的接口,要有一定的js功底。容易被发现屎爬虫 |
selenium | 直接模拟浏览器行为。爬虫更稳定 | 代码量多,性能低 |
注:异步加载的数据不在原网页代码中显示,但是可以使用查看器进行选择查看,然后在Elements属性中看到代码的标签结构,便于之后数据的解析。
除此之外,也可以通过在Network中找到对应的异步加载的数据,然后根据response获得json数据,然后在json.cn进行 在线解析,也可以得到规格化的json数据。