這裡所說的小偷指的是asp中運用xml中的xmlhttp元件提供的強大功能,把遠端網站上的資料(圖片,網頁及其他檔案)抓取到本地,經過各種處理後顯示到頁面上或儲存進資料庫的一類程式。你可以透過這種小偷程序,完成過去一些似乎完全不可能實現的任務,比如說把某個站的頁面偷梁換柱後變成自己的頁面,或者把某個站的一些數據(文章,圖片)保存到本地資料庫中加以利用。小偷的優點有:無須維護網站,因為小偷程式中的資料來自其他網站,它將隨著該網站的更新而更新;可以節省大量的伺服器資源,一般小偷程式就幾個文件,所有網頁內容都是來自其他網站。缺點在於:不穩定,如果目標網站出錯,程式也會出錯,而且,如果目標網站進行升級維護,那麼小偷程式也要進行相應修改;速度,因為是遠端調用,速度和在本地伺服器上讀取數據比起來,肯定要慢一點。怎麼樣,聽起來很神奇吧?我們現在就開始來學習一些小偷程式的入門知識吧!
我們拿個簡單點的東西來研究一下吧,qq網站上的天氣預報程序
程式碼如下:
1<%2OnErrorResumeNext
3Server.Scripttimeout=9999999
4FunctionGethttppage(Path)
5T=Getbody(Path)
6Gethttppage=Bytestobstr(T,Gb2312)
7End Function
8
9'首先,進行小偷程式的一些初始化設置,以上程式碼的作用分別是忽略掉所有非致命性錯誤,把小偷程式的運行超時時間設定得很長(這樣不會出現運行超時的錯誤),轉換原來預設的utf-8編碼轉換成gb2312編碼,否則直接用xmlhttp元件呼叫有中文字元的網頁得到的將是亂碼。
10
11FunctionGetbody(Url)
12OnErrorResumeNext
13SetRetrieval=Createobject(Microsoft.Xmlhttp)
14WithRetrieval
15.OpenGet, Url,False,,
16.Send
17Getbody=.Responsebody
18EndWith
19SetRetrieval=Nothing
20End Function
21
22'然後呼叫xmlhttp元件建立一個物件並進行初始化設定。
23
24FunctionBytestobstr(Body,Cset)
25DimObjstream
26SetObjstream=Server.Createobject(Adodb.Stream)
27Objstream.Type=1
28Objstream.Mode=3
29Objstream.Open
30Objstream.Write Body
31Objstream.Position=0
32Objstream.Type=2
33Objstream.Charset=Cset
34Bytestobstr=Objstream.Readtext
35Objstream.Close
36SetObjstream=Nothing
37End Function
38
39FunctionNewstring(Wstr,Strng)
40Newstring=Instr(Lcase(Wstr),Lcase(Strng))
41IfNewstring<=0ThenNewstring=Len(Wstr)
42End Function
43
44'處理抓取回來的資料需要呼叫adodb.Stream元件並進行初始化設定。 %>