Ajax等相关问题"/>
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页面进行爬虫?
参考网站
方法一:渲染动态网页
1.使用pyside或ghost.py
2.selenium模拟浏览器
用来模拟浏览器进行爬虫的模块——Selenium+PhantomJS或Selenium+Chrome
方法二:逆向工程,其实就是找到存放数据的真实网页链接,再利用Requests方法进行爬取
requests模块用的较多的有get和post方法。之前一直用的都是get方法,但是对于Ajax的网页,为什么在我们切换时网页的Url并不会改变,其中某些网站可能采用的就是它将网址后面的一些属性隐藏了。
常见的是get请求,一般会显示请求的参数。例如某一网址为=a&page=b&value=c 这样的网址显性的将属性添加到主体的后面,那么对于这类网站,我们就可以通过获取Query String Paramaters下的参数来构建网站,然后调用get方法,获取响应内容
但有的是不显示参数的,这个参数被隐藏了。另一种网址 你会发现我们在页面上例如点击下一页或者切换内容时,网页的地址是不会变得。这种网址比较常见的可能就是在一些主体后的属性需要保密的场合,例如身份信息,毕竟你也不会希望这些信息直接出现显式的出现在网址上,供别人获取。在这种时候我们就可以采用post方法,利用From Data里的属性信息,来构造参数发送请求。
如何判断一个网址的请求应该是get还是post呢?
参考网址:
更多推荐
Ajax等相关问题
发布评论