也談采集入庫的技術(shù)
更新時間:2006年07月03日 00:00:00 作者:
落伍的貼也看了很多了,發(fā)現(xiàn)了很多講小偷技術(shù)的,如精華貼里的--小偷程序原理和簡單示例:
[url]http://www.im286.com/viewthread.php?tid=407182&extra=page%3D1[/url] 等等,也有提供采集程序下載的,但我還沒看到一篇完整的入庫的文章,或許是我看的貼少吧。雖然不是很深奧,我還是講講吧,希望高手別見笑啦,以前發(fā)了個原創(chuàng)的影視系
統(tǒng),卻沒落伍,這次再求落伍啦,希望大家?guī)晚斚?,也希望我能落伍?。?
入庫也和小偷一樣,要先得到需入庫的部分,我這里以[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")
'下面定義兩個函數(shù),得到數(shù)據(jù)
Private Function BytesToBstr(body) '利用流進(jìn)行中文編碼
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得到數(shù)據(jù)
'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
%>
我們就得到了以下的數(shù)據(jù):
'''''''''''''''''''''''''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>訪問次數(shù):</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> 據(jù)瑞星全球反病毒監(jiān)測
網(wǎng)介紹,今日有一個病毒特別值得注意,它是:“hotmail蠕蟲(Worm.Hotmatom)”病毒。該病毒是全球
第一個專門針對Hotmail編寫的蠕蟲病毒,當(dāng)用戶登陸到MSN Hotmail發(fā)送郵件的時候,會被偷偷插入帶毒
鏈接,收信人點(diǎn)擊后就可能中毒。<br><br> 本日熱門病毒:
<br><br> “hotmail蠕蟲(Worm.Hotmatom)”病毒:警惕程度★★★☆,蠕蟲
病毒,通過MSN Hotmail傳播,依賴系統(tǒng):WIN9X/NT/2000/XP。<br><br> 病毒
感染計(jì)算機(jī)后,會把自己復(fù)制到“windows”目錄下,病毒文件名為“dho.exe”。病毒會修改注冊表,每
次打開計(jì)算機(jī)后都自動運(yùn)行,然后在后臺監(jiān)視用戶的IE瀏覽器。當(dāng)用戶登陸到MSN Hotmail發(fā)送郵件時,
病毒會在發(fā)送的郵件后插入病毒文字和鏈接:“Hi, Happy San Valentin Day Download you Postcards
from http://***.miarroba.com(情人節(jié)到了,去**網(wǎng)站下載賀卡吧)”,用戶點(diǎn)擊該鏈接后就會中毒。
<br><br> 反病毒專家建議電腦用戶采取以下措施預(yù)防該病毒:建立良好的安全
習(xí)慣,不打開可疑郵件和可疑網(wǎng)站;關(guān)閉或刪除系統(tǒng)中不需要的服務(wù);很多病毒利用漏洞傳播,一定要及
時給系統(tǒng)打補(bǔ)?。话惭b專業(yè)的防毒軟件進(jìn)行實(shí)時監(jiān)控,平時上網(wǎng)的時候一定要打開防病毒軟件的實(shí)時監(jiān)控
功能。<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>相關(guān)文章:</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='閱讀文章[失戀日記實(shí)為電腦病毒 疑為學(xué)生失戀后制造]'>失戀日記實(shí)為電腦病毒 疑為學(xué)生失戀
后制造</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='閱讀文章[病毒總結(jié):狗年春節(jié)
間木馬和QQ病毒多發(fā)]'>病毒總結(jié):狗年春節(jié)間木馬和QQ病毒多發(fā)</A><br><li type=circle> <A
href='../article/995.html' target=_blank title='閱讀文章[四類病毒可能在春節(jié)發(fā)作 專家提醒應(yīng)及
時防范]'>四類病毒可能在春節(jié)發(fā)作 專家提醒應(yīng)及時防范</A><br><li type=circle> <A
href='../article/3056.html' target=_blank title='閱讀文章[專家表示:BT下載不會耗費(fèi)硬盤 更不
會帶來病毒]'>專家表示:BT下載不會耗費(fèi)硬盤 更不會帶來病毒</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遭釣魚網(wǎng)站仿冒 病毒偽裝MSN
測試版?zhèn)鞑'>微軟live遭釣魚網(wǎng)站仿冒 病毒偽裝MSN測試版?zhèn)鞑?lt;/A><br><li type=circle> <A
href='../article/315.html' target=_blank title='閱讀文章[上網(wǎng)不用防火墻!一招克死所有病毒]'>
上網(wǎng)不用防火墻!一招克死所有病毒</A><br></td></tr><tr><td><b><br>相關(guān)軟件:</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里有l(wèi)eft()和right() 函數(shù),我
們就用它們來做。我們先來定個函數(shù),
Public Function finddate(byref str,byref start,byref last,byref n)
If Instr(lcase(str),lcase(start))>0 then
select case n
case 0 '左右都截?。ǘ既∏懊妫ㄈヌ庩P(guān)鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)
case 1 '左右都截?。ǘ既∏懊妫ūA絷P(guān)鍵字)
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
這個就是截取里面內(nèi)容的函數(shù)了
下面我們來得到文章標(biāo)題:03月10日值得注意病毒列表
dim title,artor,content,wherefrom
title=finddate(mydate,"width=540 borderColorDark=#ffffff
borderColorLight=#cccccc",</font></b>,1)
這樣,我們就把標(biāo)題定位到了個小范圍內(nèi)了: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)
現(xiàn)在,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)'得到
正文內(nèi)容
至此,我們已經(jīng)得到了我們想要的數(shù)據(jù)了,在下來就是把title,artor,content,wherefrom 入庫了,
其實(shí)采集入庫就怎么簡單了,只是在用finddate()是要注意里面byref start和byref last,最好是
mydate里面唯一的,這樣便于定位。如不是唯一的,我們可以先縮小范圍再來精確定位。有必要時可以弄
個循環(huán)來得到數(shù)據(jù)。完整的代碼如下
''''''''''''''''''''code start'''''''''''''''''''
<%
dim url,mydate
url="http://www.skycn.com/article/77.html"
Set OXML = server.CreateObject("Microsoft.XMLHTTP")
'下面定義兩個函數(shù),得到數(shù)據(jù)
Private Function BytesToBstr(body) '利用流進(jìn)行中文編碼
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 '左右都截?。ǘ既∏懊妫ㄈヌ庩P(guān)鍵字)
finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)
case 1 '左右都截?。ǘ既∏懊妫ūA絷P(guān)鍵字)
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)
'''''''''''''''''''''''''''''''''''
'''這個是入庫的函數(shù),自己定義下就可以了
'''''''''''''''''''''''''''''''''''
end function
%>
我這里只是以采集文章為例,其它的采集軟件等都是這個道理。
說了怎么多,我也不知道各位能不能看懂,如看不動那可能是我不會表達(dá)了,大家見諒。畢竟我沒讀過文
科,^_^
我只是講原理,程序是靠自己寫的,要采集的速度快,你還可以寫成exe的啊,這樣比較快,占內(nèi)存少
相關(guān)文章
用正則和xmlHttp實(shí)現(xiàn)的asp小偷程序
用正則和xmlHttp實(shí)現(xiàn)的asp小偷程序...2007-03-03網(wǎng)站生成靜態(tài)頁面,及網(wǎng)站數(shù)據(jù)采集的攻、防原理和策略
網(wǎng)站生成靜態(tài)頁面,及網(wǎng)站數(shù)據(jù)采集的攻、防原理和策略...2006-09-09ASP小偷(遠(yuǎn)程數(shù)據(jù)獲取)程序的入門教程
ASP小偷(遠(yuǎn)程數(shù)據(jù)獲取)程序的入門教程...2006-06-06利用MSXML2.XmlHttp和Adodb.Stream采集圖片
asp下經(jīng)常用來采集的兩個組件結(jié)合使用例子2008-05-05使用xmlHttp結(jié)合ASP實(shí)現(xiàn)網(wǎng)頁的異步調(diào)用
使用xmlHttp結(jié)合ASP實(shí)現(xiàn)網(wǎng)頁的異步調(diào)用...2006-06-06