現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。
8 ^* W# b( [, J5 A% b5 H(一)原理, H0 Z: w* {; ^- g( e5 [' @: R
小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。
( p9 n6 F, W$ d- H0 P6 G(二)事例7 d" ?$ j6 V, a8 `# w! x
s i. Q# z& {下面就XMLHTTP在ASP中的應用做個簡單說明
, Q7 ~8 F; w- [5 W# X" z+ h9 O( d" d1 n; h$ I7 p# r
<%
/ Q3 `" o& D2 P2 O! {( A'常用函數; m$ R$ x+ N. R
X3 c9 ?9 P7 w'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼, ^, W2 D, f/ \" J+ J
function getHTTPPage(url)9 ]' }; J# H' \* L9 W
dim Http( l8 w" s4 @0 a0 `# h. a6 _
set Http=server.createobject("MSXML2.XMLHTTP")( Z6 X+ x# K8 T- m
Http.open "GET",url,false- c5 h% N! y3 H, w1 j* J
Http.send()* L) _* s4 ? F( B0 D/ M
if Http.readystate<>4 then
# W: I) J! r5 ]* L; Aexit function% v1 b5 E9 Y2 H3 n' j5 I
end if
9 X4 `( {% q4 i' \getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
0 _; }) T0 s& ^set http=nothing
/ ]: P! q8 }& }. g' S3 wif err.number<>0 then err.Clear+ s7 G( J6 G; T/ X: _# u5 J, C1 c: ~2 s
end function7 @! c8 @7 H* z5 n
* h) ?# n* D) W% ~* ?- M1 g: V'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
[7 c! m$ J7 ~Function BytesToBstr(body,Cset)7 ~, s3 c, L; z
dim objstream8 L' z4 d9 I- { a; H3 u
set objstream = Server.CreateObject("adodb.stream")
8 e2 Z' L: h# R0 C3 x# Y- ?objstream.Type = 1. v: S7 M& a! R& w
objstream.Mode =3
7 z% \ ~2 m1 c9 p6 }objstream.Open4 _+ J6 C1 F/ B( q: A- |
objstream.Write body9 W2 B3 f. h' ~4 M
objstream.Position = 0) a; @8 _( F- ^* x) {; e9 B
objstream.Type = 28 H2 H' `( i& N, T5 S4 L$ m7 B
objstream.Charset = Cset
' R& L" f: ]( dBytesToBstr = objstream.ReadText2 y; k X' Z2 O
objstream.Close
h5 E3 _6 f) g) O( e! l- }/ hset objstream = nothing+ b( t: K0 ?; H4 |8 ~
End Function3 y* N& h. [/ h0 n
( F4 ^, V& w4 [) a4 l
; ^( V% {- I3 Y# b) _' a6 {2 x( V3 ?: |5 l1 x g( H
3 [3 f/ {4 {$ }6 Q6 F$ a
'下面試著調用http://www.3doing.com/earticle/的html內容8 p* v5 y( [' {5 @# D. o; n& Q
Dim Url,Html1 L2 h2 D$ H" D9 k* V
Url="http://www.3doing.com/earticle/";
5 ~. t# H% A) X' T8 bHtml = getHTTPPage(Url)
# f( e9 X# ]" ^/ t9 w5 [6 U2 w& xResponse.write Html+ O" A( l3 [, c' K8 s& ^
%> |
|