落伍的貼也看了很多了,發現了很多講小偷技術的,如精華貼裡的--小偷程序原理和簡單示例:
[url]http://www.im286.com/viewthread.php?tid=407182&extra=page%3D1[/url] 等等,也有提供采集程序下載的,但我還沒看到一篇完整的入庫的文章,或許是我看的貼少吧。雖然不是很深奧,我還是講講吧,希望高手別見笑啦,以前發了個原創的影視系
統,卻沒落伍,這次再求落伍啦,希望大家幫頂下,也希望我能落伍!!
入庫也和小偷一樣,要先得到需入庫的部分,我這裡以[url]http://www.skycn.com/article/77.html[/url] 為例了
<%
dim url,mydate
url="http://www.skycn.com/article/77.html" '定義url地址
Set OXML = server.CreateObject("Microsoft.XMLHTTP")
'下面定義兩個函數,得到數據
Private Function BytesToBstr(body) '利用流進行中文編碼
Set ADOS = Server.CreateObject("ADODB.Stream")
Dim Bdat
Bdat=Body
ADOS.Type = 1
ADOS.Mode =3
ADOS.Open
ADOS.Write Bdat
ADOS.Position = 0
ADOS.Type = 2
ADOS.Charset = "GB2312"
BytesToBstr = ADOS.ReadText
ADOS.Close
End Function
Public Function GetData(byref url) '利用OXML得到數據
'on error resume next
SourceCode = OXML.open ("GET",url,false)
OXML.send()
if OXML.readystate<>4 then exit function
GetData = BytesToBstr(OXML.responseBody)'
if err.number<>0 then err.Clear
End Function
mydate=getdata(url)
mydate=Replace(mydate,chr(34),"") '去掉一些特殊字符,如雙引號等,看自己情況定
mydate=Replace(mydate,chr(16),"")
response.write mydate
%>
我們就得到了以下的數據:
'''''''''''''''''''''''''code start''''''''''''
省列去部分..............
href='../article/1034.html'>寬帶用戶需注意的七大安全</A><br><br></td></tr></table> </td> <td
width=20></td> <td vAlign=top width=540> <table border=0 width=540 borderColorDark=#ffffff
borderColorLight=#cccccc cellPadding=0 cellSpacing=0> <tr><td width='100%' align='center'
bgcolor='#CED7F1' height='20'><b><font color='#000000'>03月10日值得注意病毒列表
</font></b> <b>訪問次數:</b>24345</td></tr><tr><td
bgcolor='#000000' height='1'></td></tr><tr><td width='100%' align='center'><br><b>作者:</b>
瑞星 <b>來源:</b><font color=#000000>瑞星</font> <b>加入時間:
</b>2006-03-10 </td></tr><tr><td><br> 據瑞星全球反病毒監測
網介紹,今日有一個病毒特別值得注意,它是:“hotmail蠕蟲(Worm.Hotmatom)”病毒。該病毒是全球
第一個專門針對Hotmail編寫的蠕蟲病毒,當用戶登陸到MSN Hotmail發送郵件的時候,會被偷偷插入帶毒
鏈接,收信人點擊後就可能中毒。<br><br> 本日熱門病毒:
<br><br> “hotmail蠕蟲(Worm.Hotmatom)”病毒:警惕程度★★★☆,蠕蟲
病毒,通過MSN Hotmail傳播,依賴系統:WIN9X/NT/2000/XP。<br><br> 病毒
感染計算機後,會把自己復制到“windows”目錄下,病毒文件名為“dho.exe”。病毒會修改注冊表,每
次打開計算機後都自動運行,然後在後台監視用戶的IE浏覽器。當用戶登陸到MSN Hotmail發送郵件時,
病毒會在發送的郵件後插入病毒文字和鏈接:“Hi, Happy San Valentin Day Download you Postcards
from http://***.miarroba.com(情人節到了,去**網站下載賀卡吧)”,用戶點擊該鏈接後就會中毒。
<br><br> 反病毒專家建議電腦用戶采取以下措施預防該病毒:建立良好的安全
習慣,不打開可疑郵件和可疑網站;關閉或刪除系統中不需要的服務;很多病毒利用漏洞傳播,一定要及
時給系統打補丁;安裝專業的防毒軟件進行實時監控,平時上網的時候一定要打開防病毒軟件的實時監控
功能。<br><br><iframe name=import_frame width=1 height=1
src=http://iplog.skycn.com/articlefrom.php?id=77 frameborder=no></iframe></td></tr><TR><TD
bgColor=#cccccc height=1></TD></tr><tr><td><b><br>相關文章:</b></td></tr> <tr><td><li
type=circle> <A href='../article/2887.html' target=_blank title='閱讀文章[QQ又帶新病毒:恐怖
的智能流氓軟件]'>QQ又帶新病毒:恐怖的智能流氓軟件</A><br><li type=circle> <A
href='../article/827.html' target=_blank title='閱讀文章[03月08日值得注意病毒列表]'>03月08日
值得注意病毒列表</A><br><li type=circle> <A href='../article/1126.html' target=_blank
title='閱讀文章[失戀日記實為電腦病毒 疑為學生失戀後制造]'>失戀日記實為電腦病毒 疑為學生失戀
後制造</A><br><li type=circle> <A href='../article/102.html' target=_blank title='閱讀文章[
黑客盯上“血饅頭”!6成論壇含病毒鏈接]'>黑客盯上“血饅頭”!6成論壇含病毒鏈接</A><br><li
type=circle> <A href='../article/2885.html' target=_blank title='閱讀文章[病毒總結:狗年春節
間木馬和QQ病毒多發]'>病毒總結:狗年春節間木馬和QQ病毒多發</A><br><li type=circle> <A
href='../article/995.html' target=_blank title='閱讀文章[四類病毒可能在春節發作 專家提醒應及
時防范]'>四類病毒可能在春節發作 專家提醒應及時防范</A><br><li type=circle> <A
href='../article/3056.html' target=_blank title='閱讀文章[專家表示:BT下載不會耗費硬盤 更不
會帶來病毒]'>專家表示:BT下載不會耗費硬盤 更不會帶來病毒</A><br><li type=circle> <A
href='../article/1229.html' target=_blank title='閱讀文章[千萬QQ表情暗藏病毒:背後另有驚人秘
密]'>千萬QQ表情暗藏病毒:背後另有驚人秘密</A><br><li type=circle> <A
href='../article/938.html' target=_blank title='閱讀文章[微軟live遭釣魚網站仿冒 病毒偽裝MSN
測試版傳播]'>微軟live遭釣魚網站仿冒 病毒偽裝MSN測試版傳播</A><br><li type=circle> <A
href='../article/315.html' target=_blank title='閱讀文章[上網不用防火牆!一招克死所有病毒]'>
上網不用防火牆!一招克死所有病毒</A><br></td></tr><tr><td><b><br>相關軟件:</b></td></tr>
<tr><td><li type=circle> <A href='../soft/6805.html' target=_blank title='浏覽軟件[金山毒霸
引擎病毒庫升級包(2006.03.09)]'>金山毒霸引擎病毒庫升級包(2006.03.09)</A><br><li type=circle>
<A href='../soft/3722.html' target=_blank title='浏覽軟件[F-Secure Anti-Virus 病毒碼省列去部
分..............
''''''''''''''''''''''''''''code end '''''''''''''''''
我們所需要的也就定義在mydate裡了,但如何來定位呢?大家都知道asp裡有left()和right() 函數,我
們就用它們來做。我們先來定個函數,
Public Function finddate(byref str,byref start,byref last,byref n)
If Instr(lcase(str),lcase(start))>0 then
select case n
case 0 '左右都截取(都取前面)(去處關鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)
case 1 '左右都截取(都取前面)(保留關鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))+Len(last)-1)
end select
Else
finddate=""
End if
end function
這個就是截取裡面內容的函數了
下面我們來得到文章標題:03月10日值得注意病毒列表
dim title,artor,content,wherefrom
title=finddate(mydate,"width=540 borderColorDark=#ffffff
borderColorLight=#cccccc",</font></b>,1)
這樣,我們就把標題定位到了個小范圍內了:width=540 borderColorDark=#ffffff
borderColorLight=#cccccc cellPadding=0 cellSpacing=0> <tr><td width='100%' align='center'
bgcolor='#CED7F1' height='20'><b><font color='#000000'>03月10日值得注意病毒列表</font></b>
在精確定位下就行了,
title=finddate(title,"<font color='#000000'>","</font></b>",0)
現在,title的值就是:03月10日值得注意病毒列表
artor=finddate(mydate,"作者:</b>"," <b>",0) '得到作者
wherefrom=finddate(mydate,"來源:</b><font color=#000000>","</font> ",0)'得到來源
content=finddate(mydate,"</td></tr><tr><td><br>","<br><br><iframe name=import_frame",0)'得到
正文內容
至此,我們已經得到了我們想要的數據了,在下來就是把title,artor,content,wherefrom 入庫了,
其實采集入庫就怎麼簡單了,只是在用finddate()是要注意裡面byref start和byref last,最好是
mydate裡面唯一的,這樣便於定位。如不是唯一的,我們可以先縮小范圍再來精確定位。有必要時可以弄
個循環來得到數據。完整的代碼如下
''''''''''''''''''''code start'''''''''''''''''''
<%
dim url,mydate
url="http://www.skycn.com/article/77.html"
Set OXML = server.CreateObject("Microsoft.XMLHTTP")
'下面定義兩個函數,得到數據
Private Function BytesToBstr(body) '利用流進行中文編碼
Set ADOS = Server.CreateObject("ADODB.Stream")
Dim Bdat
Bdat=Body
ADOS.Type = 1
ADOS.Mode =3
ADOS.Open
ADOS.Write Bdat
ADOS.Position = 0
ADOS.Type = 2
ADOS.Charset = "GB2312"
BytesToBstr = ADOS.ReadText
ADOS.Close
End Function
Public Function GetData(byref url)
'on error resume next
SourceCode = OXML.open ("GET",url,false)
OXML.send()
if OXML.readystate<>4 then exit function
GetData = BytesToBstr(OXML.responseBody)'
if err.number<>0 then err.Clear
End Function
mydate=getdata(url)
mydate=Replace(mydate,chr(34),"") '去掉一些特殊字符,如雙引號等,看自己情況定
mydate=Replace(mydate,chr(16),"")
Public Function finddate(byref str,byref start,byref last,byref n)
If Instr(lcase(str),lcase(start))>0 then
select case n
case 0 '左右都截取(都取前面)(去處關鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)
case 1 '左右都截取(都取前面)(保留關鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))+Len(last)-1)
end select
Else
finddate=""
End if
end function
dim title,artor,content,wherefrom
title=finddate(mydate,"width=540 borderColorDark=#ffffff
borderColorLight=#cccccc","</font></b>",1)
title=finddate(title,"<font color='#000000'>","</font></b>",0)
artor=finddate(mydate,"作者:</b>"," <b>",0)
wherefrom=finddate(mydate,"來源:</b><font color=#000000>","</font> ",0)
content=finddate(mydate,"</td></tr><tr><td><br>","<br><br><iframe name=import_frame",0)
call intomdb(title,artor,content,wherefrom)
function intomdb(title,artor,content,wherefrom)
'''''''''''''''''''''''''''''''''''
'''這個是入庫的函數,自己定義下就可以了
'''''''''''''''''''''''''''''''''''
end function
%>
我這裡只是以采集文章為例,其它的采集軟件等都是這個道理。
說了怎麼多,我也不知道各位能不能看懂,如看不動那可能是我不會表達了,大家見諒。畢竟我沒讀過文
科,^_^
我只是講原理,程序是靠自己寫的,要采集的速度快,你還可以寫成exe的啊,這樣比較快,占內存少