也谈采集入库的技术
程序员文章站
2023-01-29 12:13:11
落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例: [url]http://www.im286.com/viewthread...
落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例:
[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的啊,这样比较快,占内存少
上一篇: 一个查ASP木马的小东东
下一篇: iOS-Quartz2D画图