現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。6 t5 T0 s: J* w6 U8 |6 k" z, b1 {* b
(一)原理
+ m" J7 B/ h( b小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。; T! I3 W/ d0 D# x1 T p
(二)事例( I% h5 Z6 L2 s0 W/ F4 L# H' r* z
" }& H4 ^' V% C7 p
下面就XMLHTTP在ASP中的應用做個簡單說明7 l: [( D* R7 Q5 |4 y
5 i/ y; ]2 U3 S
<%
. ?. L( F7 { Y0 z T$ z3 @'常用函數: O o. V) f& M# H7 _ n
; [( }& X' H2 G7 M; n \'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼
, ?6 X, _% ?. @2 n @5 ~function getHTTPPage(url)& M3 b, b# H: U+ c3 E6 J; w
dim Http4 t% p* N: G5 {6 Q9 Q% x) g6 Q
set Http=server.createobject("MSXML2.XMLHTTP")
7 b4 f P/ c7 `& OHttp.open "GET",url,false, }5 u. A' |8 M6 o8 A# {
Http.send()2 {$ A+ Q: Q, d, d) U. n( M
if Http.readystate<>4 then
: A/ r- \! {! N6 a( R$ Eexit function
- e. k- q( }3 A7 y+ Wend if( e G. e6 @ _% t9 P9 u4 z# \" y
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")) w* N& G R( f: d5 P! P
set http=nothing
) E" l; T6 s( _ `9 e2 w' Sif err.number<>0 then err.Clear$ Q3 ]( n1 Q7 g( t3 _- n
end function( T4 X) ]- H& b
T3 k" w- I# Z, h( c6 J'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
) H! C; {8 x% D' f8 l/ JFunction BytesToBstr(body,Cset)
7 l% A! M* L' m0 \dim objstream, a* B8 V: c/ K- m' V' Y% O
set objstream = Server.CreateObject("adodb.stream")4 m' _9 Z s& c( Q7 e) Z
objstream.Type = 1
9 f2 o3 Q2 B- P/ zobjstream.Mode =3
c, Z, P; V% n" r& Tobjstream.Open
6 D' W. H# q4 {; e J3 Kobjstream.Write body0 E# S \. a, F# [" V8 x
objstream.Position = 0/ ?. `. g, i1 l \, T: t
objstream.Type = 2
+ F+ w" q! ^( u5 ?- Z" r$ }objstream.Charset = Cset
; Z, \; e: ]' MBytesToBstr = objstream.ReadText% A; b+ O) o( f2 U
objstream.Close
$ ^; T8 W0 Y! D0 t- eset objstream = nothing
) }- t: U5 u1 d* k6 m1 z: ^( eEnd Function# b' c, Y# W3 t) B
! m$ h$ p$ C9 M, I9 K
4 p/ h0 F" x/ I% [, u7 ]9 a
_ ?5 E" P* u( c3 w/ ^
. ?3 `1 r: Z: D. B0 s( k'下面試著調用http://www.3doing.com/earticle/的html內容* e8 z: I" r: z
Dim Url,Html
8 d9 |: M# h6 v, E: l4 v# JUrl="http://www.3doing.com/earticle/";* p7 K) u5 ]+ ^/ V5 z2 \+ g+ ]
Html = getHTTPPage(Url)$ z8 ]/ [/ H) o- s! j
Response.write Html
1 x6 S: Q5 Y5 U9 i* x%> |
|