現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。
. m" Z7 m8 Y ^(一)原理
* C: B; J) _& l+ i0 E7 U! N4 y1 N/ g3 b0 A小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。
! R9 r m, F% [+ G% ](二)事例
4 U2 I$ S- T5 {# J' X: ]: O
. v9 k$ K' s0 G" ~下面就XMLHTTP在ASP中的應用做個簡單說明
( _8 X3 m; d/ W0 j, O) B. d7 U( q3 T5 ]% {" s3 I. V* O
<%
. d3 e5 `+ I2 G: T; W' z2 i'常用函數& U) t0 a5 L6 y' B( L! F$ v
- }7 I; U3 g+ k4 D: s'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼
* [1 u$ D6 B+ hfunction getHTTPPage(url)
1 z3 l# x+ R0 @' Tdim Http l# b; o/ W6 h7 d
set Http=server.createobject("MSXML2.XMLHTTP")
; m; U" R5 h; A9 W' _+ D& ]7 D7 \Http.open "GET",url,false6 }# q5 H( H9 _
Http.send()
, r$ d6 s2 Y% @3 i/ Eif Http.readystate<>4 then
; x7 G4 u& }( Lexit function
% n4 ^* L x0 t5 m3 H/ A: V( }* {end if) L% i, o2 b. u4 t& m9 _7 Z/ A
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")+ C) h6 p5 V" ]9 W- E
set http=nothing
1 n5 s) f2 s* j) G9 T, P8 i4 @if err.number<>0 then err.Clear* j$ ~8 A7 f( K- W% D+ ]
end function. S, D; [0 b& @, s' D8 o: `
: {; M9 {* Z w D. d'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
6 {: l" m ~5 Z! R0 DFunction BytesToBstr(body,Cset)( D) T# N5 T6 b
dim objstream
3 K0 V" @! K, ` \3 mset objstream = Server.CreateObject("adodb.stream")
@5 L5 w# y; N5 z! mobjstream.Type = 1
# v1 T" { O/ j+ ]8 g7 O- Robjstream.Mode =3
/ ^ Q, R: @) O# Sobjstream.Open
' Z: o- ^: C( X' L+ |3 R, j" Zobjstream.Write body
0 G, |5 X |- [6 y4 Kobjstream.Position = 0
. W% `; }0 H% F" d$ Kobjstream.Type = 2
( ^! \/ l2 U- k) T& S+ ?objstream.Charset = Cset! b& v' T1 P) I& x
BytesToBstr = objstream.ReadText
0 ?1 {+ V' D4 g: @( J4 \objstream.Close, [. z0 N3 B' {& e, \2 L, c
set objstream = nothing
. V& o/ ]( a/ s9 @+ l1 }End Function
) O0 z0 D$ a" q+ W Q+ H" O% J. E2 V5 O. K4 q5 r
, @$ B4 [6 N8 m( }
8 ~6 u) n; h: Z- j p8 `) J6 u; q J
'下面試著調用http://www.3doing.com/earticle/的html內容
J9 A: y1 g7 P% b0 N8 z. ZDim Url,Html S, I: F6 O" n) F
Url="http://www.3doing.com/earticle/";5 W0 Y0 a! s1 f4 h$ ]* l( q$ r
Html = getHTTPPage(Url)8 X; o" k. c5 u2 t0 e
Response.write Html% P( C/ w$ Q5 M; q
%> |
|