采集中一般常用的是XMLHTTP和serverXMLHTTP方法,各有不同,數(shù)據(jù)獲取方法如下:
1、用serverXMLHTTP組件獲取數(shù)據(jù)
Function GetBody(weburl)
’創(chuàng)建對(duì)象
Dim ObjXMLHTTP
Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")
’請(qǐng)求文件,以異步形式
ObjXMLHTTP.Open "GET",weburl,False
ObjXMLHTTP.send
While ObjXMLHTTP.readyState <> 4
ObjXMLHTTP.waitForResponse 1000
Wend
’得到結(jié)果
GetBody=ObjXMLHTTP.responseBody
’釋放對(duì)象
Set ObjXMLHTTP=Nothing
End Function
調(diào)用方法:GetBody(文件的URLf地址)
2、XMLHTTP組件獲取數(shù)據(jù)
Function GetBody(weburl)
’創(chuàng)建對(duì)象
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", weburl, False, "", ""
.Send
GetBody = .ResponseBody
End With
’釋放對(duì)象
Set Retrieval = Nothing
End Function
調(diào)用方法:GetBody(文件的URLf地址)
這樣獲取的數(shù)據(jù)內(nèi)容還需要進(jìn)行編碼轉(zhuǎn)換才能使用
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
調(diào)用方法:BytesToBstr(要轉(zhuǎn)換的數(shù)據(jù),編碼)’編碼常用為GB2312和UTF-8。
在服務(wù)器端用ASP來(lái)取得互聯(lián)網(wǎng)上的任意文件使用ServerXMLHTTP或許更加合適??梢栽O(shè)定過(guò)期時(shí)間可以讓ASP程序更具效率和可靠性。
ServerXMLHTTP的SetTimeOuts方法設(shè)置超,一旦網(wǎng)絡(luò)連接超時(shí),就斷開(kāi)連接。
具體的應(yīng)用如下:
Set objXml =Server.CreateObject("MSXML2.ServerXMLHTTP")
objXml.SetTimeOuts 10000, 10000, 15000, 15000
第一個(gè)數(shù)值:解析DNS名字的超時(shí)時(shí)間10秒
第二個(gè)數(shù)值:建立Winsock連接的超時(shí)時(shí)間10秒
第三個(gè)數(shù)值:發(fā)送數(shù)據(jù)的超時(shí)時(shí)間15秒
第四個(gè)數(shù)值:接收response的超時(shí)時(shí)間15秒
建立連接,獲取數(shù)據(jù)后,然后利用截取函數(shù)分離數(shù)據(jù)。
留言反饋