現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。
6 m9 d r$ y5 O( J(一)原理( O3 x' Q0 M5 T+ N* T
小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。
/ |0 }# K& v D2 @8 ? a3 d g0 F(二)事例
) Y- Y; \+ Y( N- b7 d! Z1 d6 [$ P, y1 T' m2 _8 [
下面就XMLHTTP在ASP中的應用做個簡單說明
9 b/ l5 _3 h' U; r0 K; U$ l: z5 x3 E0 O* J
<%
$ H9 V7 D8 Y% l# Y. V1 l'常用函數
* X% w: J6 P" a" S) I1 Q g
6 x/ j7 U) K1 Z9 Y+ \4 D'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼3 j1 K' j4 q! F
function getHTTPPage(url)
! b1 O% R- f0 U4 p+ gdim Http; H! z: _. w% A( c. Y
set Http=server.createobject("MSXML2.XMLHTTP")
" Z, A/ ~2 L2 w( ~) P0 V2 P# zHttp.open "GET",url,false
% J/ \6 S c) A+ f! M5 jHttp.send()* Y9 [) H( a! @1 I, N% H; d4 c
if Http.readystate<>4 then
2 `; {( ?5 H: M) h& l6 e. rexit function
* K* F. d$ d) L) qend if- D$ I( u1 o' r& ^: T
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")- `8 K5 J3 l- Q; J% C& ]
set http=nothing3 R% A, ], c& q0 v4 f! M
if err.number<>0 then err.Clear
6 h2 P! @, {5 ~# x: |end function
/ J4 t* ?- {( P, z" I* l) j5 v* D# }
'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
" g" S5 D7 o: A1 v8 L9 \Function BytesToBstr(body,Cset)
! a8 \3 \0 F" x) d0 cdim objstream
! b' I+ t2 E. @: V3 sset objstream = Server.CreateObject("adodb.stream"): |1 S! l5 L( V ^' X
objstream.Type = 1% X7 u9 p% U f5 w. C9 _* J
objstream.Mode =3' w( q$ U$ a$ V% t! t
objstream.Open* [7 o9 e% A8 Q+ [
objstream.Write body- p1 J. K) U7 j1 |- L8 C
objstream.Position = 0
) B1 i" N5 a0 T- Q1 Eobjstream.Type = 25 E; S! A, u' R/ @8 h6 T
objstream.Charset = Cset. H) e6 i3 F$ L1 I0 D4 S( F
BytesToBstr = objstream.ReadText: r0 I' E: ?) D
objstream.Close
9 u- e8 t8 U+ @) H. g$ Zset objstream = nothing" ~' Q' d9 E7 h: g2 e( p
End Function
. U" x$ I; |+ V$ |$ e4 j* _
* N, Z& X+ K( ^) K- }% I) ^: Y. p! n& K$ r
' `! G- B% h! } y8 i( X. y& p% l2 w7 n* B( S, g/ R4 h6 O
'下面試著調用http://www.3doing.com/earticle/的html內容
" T: T& i7 i$ @/ D* RDim Url,Html: I4 [4 @. Y( J- L; }/ q6 P
Url="http://www.3doing.com/earticle/";; A1 B4 ?& Y# b( E# w
Html = getHTTPPage(Url)
, v* S0 I, s: IResponse.write Html
* T" W) {$ w3 }6 i" _%> |
|