現在網上流行的小偷程序比較多,有新聞類小偷,音樂小偷,下載小偷,那麼它們是如何做的呢,下面我來做個簡單介紹,希望對各位站長有所幫助。0 w8 L( B. @9 M9 ^6 F
(一)原理
0 ?" V# K- o2 z F5 x; t小偷程序實際上是通過了XML中的XMLHTTP組件調用其它網站上的網頁。比如新聞小偷程序,很多都是調用了sina的新聞網頁,並且對其中的html進行了一些替換,同時對廣告也進行了過濾。用小偷程序的優點有:無須維護網站,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省服務器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。缺點有:不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地服務器上讀取數據比起來,肯定要慢一些。
! k$ G' ?2 f; N8 T- f(二)事例4 `& s7 r/ m: {9 f1 v3 R
, k: u$ F8 M6 [2 B& s! }: S% e( c下面就XMLHTTP在ASP中的應用做個簡單說明
- J% k8 N$ U% ?6 u8 V7 c2 c6 p
) B: s- e# O( S<%
* A, U' v) v1 s* c2 a'常用函數
( T5 ~# U$ D2 H8 d1 H; b9 Q, q8 j5 y2 [
'1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼
' [# v. S2 c, L, lfunction getHTTPPage(url), J. S/ g* g% g/ V% k
dim Http" _4 K& g/ T0 c/ _' G, S
set Http=server.createobject("MSXML2.XMLHTTP")
) O% y; G* K# V" iHttp.open "GET",url,false
% Q& r9 w3 K8 i9 U: zHttp.send(). L6 U9 u6 o7 i B' {: c
if Http.readystate<>4 then* n* o0 M7 ] f' t- Q B7 k7 [
exit function( _ F# o. Y6 \. i4 p) Q T
end if- ?7 K; X) y; S3 U& J6 t
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")2 Q5 l7 {0 o" P/ V) V
set http=nothing
8 p- V$ q1 x jif err.number<>0 then err.Clear0 B+ w+ ?) E; a1 W
end function
4 _- p1 z {) J5 i
% f& O& `* x. Y- [& Z4 B8 O'2、轉換亂瑪,直接用xmlhttp調用有中文字符的網頁得到的將是亂瑪,可以通過adodb.stream組件進行轉換
' Q3 I& `# y) e: OFunction BytesToBstr(body,Cset)+ `' D4 ` k" ^
dim objstream3 D* i! ~0 X3 t' g$ N& O8 ^9 P4 E2 m5 ?
set objstream = Server.CreateObject("adodb.stream")
/ S( B: I: {( x u5 C& Gobjstream.Type = 1
1 }0 Q7 G9 ~8 H8 o. Y( ?2 Hobjstream.Mode =3
. j3 m2 ?+ h! ~7 hobjstream.Open
H! B2 t6 o2 G Z+ [, S, a$ Zobjstream.Write body- q6 f" p& K3 y% E5 V4 ?+ R( _
objstream.Position = 0
8 }5 @ O/ U! v$ G& Bobjstream.Type = 28 S% o4 J& H9 w) ^9 S/ c# ~ [* P' U% @
objstream.Charset = Cset" D. L5 P9 Q7 O& Y
BytesToBstr = objstream.ReadText( a/ w b/ l! m1 w6 d
objstream.Close s# D0 H. ~+ ~/ @! I h# k
set objstream = nothing3 E, J" R( S! S$ C( ] ]
End Function
/ j$ n" n+ l2 t3 E v" ^- T# l+ e( B+ k/ a& I; o% H
- w8 R6 v8 V9 ^! ^" }9 |& M4 P8 M
+ ~" p/ |" o& Q, N'下面試著調用http://www.3doing.com/earticle/的html內容
0 r% w* z* _% I. {Dim Url,Html# X2 L. N# a1 E6 F/ |. }
Url="http://www.3doing.com/earticle/";
# Z$ t4 U2 C" e$ E0 _8 P' \: kHtml = getHTTPPage(Url)
: `. M! m6 x; Q- f3 f, L$ P- mResponse.write Html, Q) u& v/ {) W% T( ^- p' B6 s# Z
%> |
|