現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。
7 R2 t1 ~8 [% e0 F4 `1 l. R" J(一)原理$ [2 |2 L5 t% p* F- X0 O
小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。
, K: n, r$ {/ F1 j% U(二)事例# c4 O$ a) p, Q5 l
, q( C$ a J5 n. p! w, L
下面就XMLHTTP在ASP中的應用做個簡單說明3 c: H8 p: y! S3 i0 B3 r; u
9 s3 h" {7 c. C9 e' |! I' \) A
<%' f/ W5 e8 h7 R, K1 C; \
'常用函數
& I" `$ a8 z8 G/ {
$ o5 q# A3 S3 T7 u6 i'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼- e) c7 m- Y' ~$ S& K
function getHTTPPage(url)
6 w$ l# K4 B$ Adim Http
' k _* o0 w2 ?0 Oset Http=server.createobject("MSXML2.XMLHTTP")
9 K2 [+ q, a/ s! FHttp.open "GET",url,false- Z" y' o8 J1 j; {( i- C8 f
Http.send()7 E# e+ F) g4 e
if Http.readystate<>4 then6 ?% N3 `+ O- |5 ~% v# w" ?& x
exit function+ O9 U5 q) z$ o0 g$ d) M
end if) G, O( e N3 n
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
6 X0 D5 o8 g0 }7 m/ J/ Rset http=nothing
- e$ m1 o$ n8 b- pif err.number<>0 then err.Clear8 b1 v. U) `; H8 ~! S
end function" q7 D2 w/ \1 s3 t, ^5 {* Q0 {7 e2 Z" _" N. y
. m1 B' n" I# p' g7 D% a) h5 ?'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
3 m c6 s) a4 Z) l5 O7 NFunction BytesToBstr(body,Cset)
$ D; q; R# b" U0 \1 e, fdim objstream
' y8 G G i4 `set objstream = Server.CreateObject("adodb.stream")/ e1 S7 F& t8 U8 G* ^
objstream.Type = 11 R- u! X! J& D' A
objstream.Mode =3! `# q4 G7 D& G Y Y
objstream.Open
3 I; n4 g' t/ Z7 a# w! Cobjstream.Write body
5 A6 k! m* e5 A+ Z6 _objstream.Position = 05 I$ M w; q$ X; o, d, H
objstream.Type = 2
! `1 M7 ]7 B; z# l+ D. hobjstream.Charset = Cset
6 Q3 ~+ j- t. k9 p# mBytesToBstr = objstream.ReadText/ L2 }) ? Q" C( A7 }0 M- I1 S. l/ @
objstream.Close0 K) t! m+ g* j N# }% L# T* g
set objstream = nothing
4 }: n7 E! R6 I; d- REnd Function* F- u1 g. a2 \, |
6 u6 d* k$ w/ p$ L5 Z$ R# n
# o* S6 n5 p: X/ P) n! X& x, n/ a/ S: g# L
! n/ H: ?; T: ]. q5 z0 l9 Q
'下面試著調用http://www.3doing.com/earticle/的html內容* K, E, i, t1 k, u/ O H2 ]# i
Dim Url,Html7 r( S. L- f9 C
Url="http://www.3doing.com/earticle/";
# M U4 F7 p/ C# j A4 |Html = getHTTPPage(Url)
% t/ \9 e9 L7 t4 O- V' LResponse.write Html
( x8 S2 b9 d* M0 N5 J%> |
|