第 1 頁 利用Msxml2.ServerXMLHTTP抓取網頁內容
第 2 頁 用ADODB.Stream將抓取內容寫入文件
第 3 頁 具體的舉一個例子
了解asp的人應該都知道asp是一種解釋執行的腳本程序語言,而腳本程序的執行效率往往都是很低的,如果站點的訪問量相對較高的話服務器就會非常消耗資源,表現的結果就是站點訪問速度急速下降.解決的方法,除了優化程序提高執行效率,還有一個方法就是將網站內的訪問量大的頁面定時的生成靜態html文件,這樣可以非常有效的解決訪問速度問題,當然前提是你的服務器速度也要不是很慢了,不然怎么弄都是沒有效果的. 下面我介紹一種利用Msxml2.ServerXMLHTTP組件來抓取您所要生成靜態的網頁,然后再利用fso,或者ado來寫入文件的一種方法,需要注意的是本文例子全部采用utf-8編碼,如果改為gb2312需要做相應屬性的修改! 先給處下面的函數:
<!--'相關問題可訪問http://www.pcer.cn
Function GetURL(URL)
'下載主函數
const TimeInterval=60
'設定時間間隔
'如果下載時間很慢,就寫成120秒
'Response.LCID=2052
const lResolve=6
'解析域名超時時間,秒
const lConnect=6
'連接站點超時時間,秒
const lSend=6
'發送數據請求超時時間,秒
const lReceive=40
'下載數據超時時間,秒
on error resume Next
Dim http
Set http = Server.CreateObject("Msxml2.ServerXMLHTTP")
http.setTimeouts lResolve*1000,lConnect*1000,lSend*1000,lReceive*1000
http.Open "GET",URL,False
http.Send
Select Case http.readyState
Case 0
GetURL="對象初始化失敗"
Err.Clear
set http=nothing
Exit Function
Case 1
GetURL="域名分析超時/連接站點超時"
Err.Clear
set http=nothing
Exit Function
Case 2
GetURL="發送數據請求超時,是不是服務器出故障了"
Err.Clear
set http=nothing
Exit Function
Case 3
GetURL="數據下載超時/等待反饋時間超時"
Err.Clear
set http=nothing
Exit Function
Case 4
'下載成功
End Select
If http.status<>200 then
GetURL="下載失敗"&Err.description
Err.Clear
set http=nothing
Exit Function
END IF
If http.status="200" then
GetURL=http.ResponseText
'GetURL=SaveFile()
End If
set http=nothing
End Function
-->
主要功能是抓取地址參數的網頁文件的內容 使用方法varia=GetURL("http://www.pcer.cn"),如果是本地測試地址可以寫成http://localhost/default.asp 使用此函數需要注意的是Response.LCID=2052屬性在windows server 2000下不被支持,不過問題不大只要注釋掉即可正常使用! 還有一些超時屬性可以根據需要自定義,但注意不要設置的時間太短,否則如果文件大或者地址訪問速度較慢就容易抓取失敗! 這讓我們就可以利用此函數來抓取你想要生成的網頁文件內容了.將內容存入變量,等著寫入文件吧!
新聞熱點
疑難解答