
就像楼上所说的,要抓AJAX的东西,需要你针对他网站来分析之后再抓取的。一般静态站大多用这种方法。
比如,他的评论是JAVASCRIPT加载的,你就用爬虫去抓他的脚本,然后在脚本中间取数据。
如果你懂原理的话,并不是一件很困难的事情。
注意要模拟GET或者POST方法,也有可能需要用到COOKIE的。。
还要看对方的网站有没有做特别的限制,必须是他的域名下面才能取数啊什么的。
1、AJAX理解:异步的javascript 与xml
包含的主要技术点:异步;javascriptxml
2、AJAX的技术组成:
AJAX不是一种技术,而是多种传统技术的组合
HTML 和 CSS
JavaScript
XML和XSLT
DOM
XMLHttpRequest对象
3、AJAX的工作原理:
传统的b/s *** 作,客户端执行的是与服务器端的同步 *** 作,必须等待服务器有返回信息后才能在客户端显示出来,而是客户端有明确的刷新过程。
在AJAX的工作中,在传统的浏览器端,服务器端的基础上,添加了一个称为AJAX引擎的中间层,来实现异步的数据传输。
AJAX引擎,主要是通过一个XMLHttpRequest对象实现的。
4、XMLHttpRequest对象
通过XMLHttpRequest,AJAX可以像桌面应用程序一样,只同服务器进行数据层面的交互,而不用每次都刷新页面。这样,即减轻了服务器的负担,又加快了响应速度,缩短了用户等待的时间。
XMLHttpRequest是AJAX中最重要的一个对象。
XMLHttpRequest在IE5中,就已经实现了,而且在不同浏览器中是兼容的。所以,在开发中可以通过固定的方法来获得
5、AJAX的核心工作机制
(1)初始化XMLHttpRequest对象
(2)客户端发送请求
(3)服务器接收请求并进行处理
(4)服务器返回响应数据
(5)客户端接受响应数据
(6)根据响应数据在客户端进行显示
根据以上流程,可形成初步的AJAX的开发框架
<script language="javascript">
var XMLHttpReq
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest()
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {}
}
}
}
或者是函数如下:
var XMLHttpReq
function createXMLHttpRequest() {
if(window.ActiveXObject){
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP")
}else{
XMLHttpReq = new XMLHttpRequest()
}
}
//发送请求函数
function sendRequest(url) {
createXMLHttpRequest()
XMLHttpReq.open("GET", url, true)
XMLHttpReq.onreadystatechange = processResponse//指定响应函数
XMLHttpReq.send(null) // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
var res=XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.data
window.alert(res)
} else { //页面不正常
window.alert("您所请求的页面有异常。")
}
}
}
//实现自己功能的函数,在此函数中根据需要调用请求发送的函数sendRequest
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)