Ajax等相关问题

什么是AJAX?

解释版本一:

AJAX 是一种用于创建快速动态网页的技术。AJAX = 异步 JavaScript 和 XML。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

解释版本二:

AJAX不是JavaScript的规范,它只是一个哥们“发明”的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。

如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit”按钮,表单开始提交,浏览器就会刷新页面,然后在新页面里告诉你操作是成功了还是失败了。如果不幸由于网络太慢或者其他原因,就会得到一个404页面。

这就是Web的运作原理:一次HTTP请求对应一个页面。

如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。

最早大规模使用AJAX的就是Gmail,Gmail的页面在首次加载后,剩下的所有数据都依赖于AJAX来更新。

Ajax的最大优点

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。

Ajax技术的工作原理?

Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现。

XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下:

在不重新加载页面的情况下更新网页 

在页面已加载后从服务器请求数据 

在页面已加载后从服务器接收数据 

在后台向服务器发送数据 

如何对Ajax页面进行爬虫?

参考网站https://blog.csdn.net/Ha_hha/article/details/80324343

方法一:渲染动态网页

1.使用pyside或ghost.py

2.selenium模拟浏览器

用来模拟浏览器进行爬虫的模块——Selenium+PhantomJS或Selenium+Chrome

方法二:逆向工程,其实就是找到存放数据的真实网页链接,再利用Requests方法进行爬取

requests模块用的较多的有get和post方法。之前一直用的都是get方法,但是对于Ajax的网页,为什么在我们切换时网页的Url并不会改变,其中某些网站可能采用的就是它将网址后面的一些属性隐藏了。

常见的是get请求,一般会显示请求的参数。例如某一网址为https://www.xxx.com/xxx?id=a&page=b&value=c 这样的网址显性的将属性添加到主体的后面,那么对于这类网站,我们就可以通过获取Query String Paramaters下的参数来构建网站,然后调用get方法,获取响应内容

但有的是不显示参数的,这个参数被隐藏了。另一种网址https://www.xxx.com/xxx 你会发现我们在页面上例如点击下一页或者切换内容时,网页的地址是不会变得。这种网址比较常见的可能就是在一些主体后的属性需要保密的场合,例如身份信息,毕竟你也不会希望这些信息直接出现显式的出现在网址上,供别人获取。在这种时候我们就可以采用post方法,利用From Data里的属性信息,来构造参数发送请求。

如何判断一个网址的请求应该是get还是post呢?

 

参考网址:

https://blog.csdn.net/Urbanears/article/details/79204684#t0

https://blog.csdn.net/deng131/article/details/83643054

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值