'********************************************************************************
'Function(公有)
'名稱: 遠(yuǎn)程抓取函數(shù)
'作用: 利用XMLHTTP遠(yuǎn)程抓取數(shù)據(jù)
'參數(shù): sMethod --- 發(fā)送方式
' sUrl ------ 目標(biāo)地址
' iMode ----- 返回內(nèi)容類型:0為二進(jìn)制,1為文本,2為cookie,3為文件頭信息
' sBase ----- 設(shè)定編碼
' sReferer -- 設(shè)定來源
' sCookie --- 設(shè)定cookie
' sLanguage - 設(shè)定語言
' sData ----- 設(shè)定要發(fā)送的參數(shù)
' sContent -- 設(shè)定接收數(shù)據(jù)類型
' sAgent ---- 設(shè)定瀏覽器
' sEncoding - 設(shè)定gzip壓縮
' sAccept --- 設(shè)定文檔類型
'********************************************************************************
Public Function SenFe_StealData(sMethod, sUrl, iMode, sBase, sReferer, sCookie, sLanguage, sData, sContent, sAgent, sEncoding, sAccept)
Dim oXmlHttp : Set oXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
With oXmlHttp
If sMethod="" Then sMethod = "GET"
.Open sMethod, sUrl, False
'設(shè)定頁面來源
If sReferer<>"" Then
.SetRequestHeader "Referer", sReferer
Else
.SetRequestHeader "Referer", Split(sUrl, "/")(2)
End If
If sCookie<>"" Then .SetRequestHeader "Cookie", sCookie '設(shè)定Cookie
If sLanguage<>"" Then .SetRequestHeader "Accept-Language", sLanguage '設(shè)定語言
If sData<>"" Then .SetRequestHeader "Content-Length", Len(sData) '設(shè)定數(shù)據(jù)長(zhǎng)度
If sContent<>"" Then .SetRequestHeader "Content-Type", sContent '設(shè)定接受數(shù)據(jù)類型
If sAgent<>"" Then .SetRequestHeader "User-Agent", sAgent '設(shè)定瀏覽器
If sEncoding<>"" Then .SetRequestHeader "Accept-Encoding", sEncoding '設(shè)定gzip壓縮
If sAccept<>"" Then .SetRequestHeader "Accept", sAccept '文檔類型
.Send sData
'While .ReadyState <> 4
' .WaitForResponse 1000
'Wend
If .ReadyState<>4 Or .Status<>200 Then
SenFe_StealData = "無法取到數(shù)據(jù)!"
Exit Function
End If
Select Case iMode
Case 0 SenFe_StealData = .ResponseBody
Case 1
If sBase<>"" Then
SenFe_StealData = BytesToBstr(.ResponseBody, sBase)
Else
SenFe_StealData = .ResponseText
End If
Case 2 SenFe_StealData = .getResponseHeader("Set-Cookie")
Case Else SenFe_StealData = .getAllResponseHeaders()
End Select
End With
End Function
'********************************************************************************
'作用: 編碼轉(zhuǎn)換
'參數(shù): sBody - 要轉(zhuǎn)換的內(nèi)容
' sCset - 編碼
'********************************************************************************
Function BytesToBstr(sBody, sCset)
With oAdos
.Type = 1
.Mode = 3
.Open
.Write sBody
.Position = 0
.Type = 2
.Charset = sCset
BytesToBstr = .ReadText
.Close
End With
End Function