关于Ajax:

即异步JavaScript和XML。过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。因为传统的在传输数据格式方面,使用的是XML语法。因此叫做AJAX,其实现在数据交互基本上都是使用JSON使用AJAX加载的数据,即使使用了JS,将数据渲染到了浏览器中,在右键->查看网页源代码还是不能看到通过ajax加载的数据,只能看到使用这个url加载的html代码。

AJAX最普遍的应用:

一些网站会有类似这种查看更多的按钮,点击之后不会刷新全部页面,只是通过一个接口去请求服务器进行数据更新,服务器返回一些JSON数据,然后添加到当前网页的HTML代码中,这就是AJAX异步更新,这是表面的现象,真正查看有没有进行AJAX还是要看网络中的请求如下图

可以看到Response中有服务器返回的JSON数据,赋值到json.cn中是可以看出来是json数据的,注意通过AJAX更新的数据是不能从网页源代码中查看的

获取AJAX数据的方法:

  1. 通过分析AJAX请求的接口来获取数据

通过在network中点击查看更多按钮抓到请求包,根据请求的URL进行获取

优点:直接可以拿到数据,不需要进行解析工作,性能比较高

缺点:分析接口比较复杂,有些网站在接口传的数据会进行加密

2.使用Selenium+chromedriver模拟浏览器行为获取数据

即用代码的方式操作浏览器

优点:模拟了浏览器的行为,爬虫更加稳定

缺点:代码多,性能低