手机
当前位置:查字典教程网 >编程开发 >ASP教程 >也谈采集入库的技术
也谈采集入库的技术
摘要:落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例:[url]http://www.im286.com/v...

落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例:

[url]http://www.im286.com/viewthread.php?tid=407182&extra=page%3D1[/url]等等,也有提供采集程序下载的,但我还没看到一篇完整的入库的文章,或许是我看的贴少吧。虽然不是很深奥,我还是讲讲吧,希望高手别见笑啦,以前发了个原创的影视系

统,却没落伍,这次再求落伍啦,希望大家帮顶下,也希望我能落伍!!

入库也和小偷一样,要先得到需入库的部分,我这里以[url]http://www.skycn.com/article/77.html[/url]为例了

<%

dimurl,mydate

url="http://www.skycn.com/article/77.html"'定义url地址

SetOXML=server.CreateObject("Microsoft.XMLHTTP")

'下面定义两个函数,得到数据

PrivateFunctionBytesToBstr(body)'利用流进行中文编码

SetADOS=Server.CreateObject("ADODB.Stream")

DimBdat

Bdat=Body

ADOS.Type=1

ADOS.Mode=3

ADOS.Open

ADOS.WriteBdat

ADOS.Position=0

ADOS.Type=2

ADOS.Charset="GB2312"

BytesToBstr=ADOS.ReadText

ADOS.Close

EndFunction

PublicFunctionGetData(byrefurl)'利用OXML得到数据

'onerrorresumenext

SourceCode=OXML.open("GET",url,false)

OXML.send()

ifOXML.readystate<>4thenexitfunction

GetData=BytesToBstr(OXML.responseBody)'

iferr.number<>0thenerr.Clear

EndFunction

mydate=getdata(url)

mydate=Replace(mydate,chr(34),"")'去掉一些特殊字符,如双引号等,看自己情况定

mydate=Replace(mydate,chr(16),"")

response.writemydate

%>

我们就得到了以下的数据:

'''''''''''''''''''''''''codestart''''''''''''

省列去部分..............

href='../article/1034.html'>宽带用户需注意的七大安全</A><br><br></td></tr></table></td><td

width=20></td><tdvAlign=topwidth=540><tableborder=0width=540borderColorDark=#ffffff

borderColorLight=#cccccccellPadding=0cellSpacing=0><tr><tdwidth='100%'align='center'

bgcolor='#CED7F1'height='20'><b><fontcolor='#000000'>03月10日值得注意病毒列表

</font></b><b>访问次数:</b>24345</td></tr><tr><td

bgcolor='#000000'height='1'></td></tr><tr><tdwidth='100%'align='center'><br><b>作者:</b>

瑞星<b>来源:</b><fontcolor=#000000>瑞星</font><b>加入时间:

</b>2006-03-10</td></tr><tr><td><br>据瑞星全球反病毒监测

网介绍,今日有一个病毒特别值得注意,它是:“hotmail蠕虫(Worm.Hotmatom)”病毒。该病毒是全球

第一个专门针对Hotmail编写的蠕虫病毒,当用户登陆到MSNHotmail发送邮件的时候,会被偷偷插入带毒

链接,收信人点击后就可能中毒。<br><br>本日热门病毒:

<br><br>“hotmail蠕虫(Worm.Hotmatom)”病毒:警惕程度★★★☆,蠕虫

病毒,通过MSNHotmail传播,依赖系统:WIN9X/NT/2000/XP。<br><br>病毒

感染计算机后,会把自己复制到“windows”目录下,病毒文件名为“dho.exe”。病毒会修改注册表,每

次打开计算机后都自动运行,然后在后台监视用户的IE浏览器。当用户登陆到MSNHotmail发送邮件时,

病毒会在发送的邮件后插入病毒文字和链接:“Hi,HappySanValentinDayDownloadyouPostcards

fromhttp://***.miarroba.com(情人节到了,去**网站下载贺卡吧)”,用户点击该链接后就会中毒。

<br><br>反病毒专家建议电脑用户采取以下措施预防该病毒:建立良好的安全

习惯,不打开可疑邮件和可疑网站;关闭或删除系统中不需要的服务;很多病毒利用漏洞传播,一定要及

时给系统打补丁;安装专业的防毒软件进行实时监控,平时上网的时候一定要打开防病毒软件的实时监控

功能。<br><br><iframename=import_framewidth=1height=1

src=http://iplog.skycn.com/articlefrom.php?id=77frameborder=no></iframe></td></tr><TR><TD

bgColor=#ccccccheight=1></TD></tr><tr><td><b><br>相关文章:</b></td></tr><tr><td><li

type=circle><Ahref='../article/2887.html'target=_blanktitle='阅读文章[QQ又带新病毒:恐怖

的智能流氓软件]'>QQ又带新病毒:恐怖的智能流氓软件</A><br><litype=circle><A

href='../article/827.html'target=_blanktitle='阅读文章[03月08日值得注意病毒列表]'>03月08日

值得注意病毒列表</A><br><litype=circle><Ahref='../article/1126.html'target=_blank

title='阅读文章[失恋日记实为电脑病毒疑为学生失恋后制造]'>失恋日记实为电脑病毒疑为学生失恋

后制造</A><br><litype=circle><Ahref='../article/102.html'target=_blanktitle='阅读文章[

黑客盯上“血馒头”!6成论坛含病毒链接]'>黑客盯上“血馒头”!6成论坛含病毒链接</A><br><li

type=circle><Ahref='../article/2885.html'target=_blanktitle='阅读文章[病毒总结:狗年春节

间木马和QQ病毒多发]'>病毒总结:狗年春节间木马和QQ病毒多发</A><br><litype=circle><A

href='../article/995.html'target=_blanktitle='阅读文章[四类病毒可能在春节发作专家提醒应及

时防范]'>四类病毒可能在春节发作专家提醒应及时防范</A><br><litype=circle><A

href='../article/3056.html'target=_blanktitle='阅读文章[专家表示:BT下载不会耗费硬盘更不

会带来病毒]'>专家表示:BT下载不会耗费硬盘更不会带来病毒</A><br><litype=circle><A

href='../article/1229.html'target=_blanktitle='阅读文章[千万QQ表情暗藏病毒:背后另有惊人秘

密]'>千万QQ表情暗藏病毒:背后另有惊人秘密</A><br><litype=circle><A

href='../article/938.html'target=_blanktitle='阅读文章[微软live遭钓鱼网站仿冒病毒伪装MSN

测试版传播]'>微软live遭钓鱼网站仿冒病毒伪装MSN测试版传播</A><br><litype=circle><A

href='../article/315.html'target=_blanktitle='阅读文章[上网不用防火墙!一招克死所有病毒]'>

上网不用防火墙!一招克死所有病毒</A><br></td></tr><tr><td><b><br>相关软件:</b></td></tr>

<tr><td><litype=circle><Ahref='../soft/6805.html'target=_blanktitle='浏览软件[金山毒霸

引擎病毒库升级包(2006.03.09)]'>金山毒霸引擎病毒库升级包(2006.03.09)</A><br><litype=circle>

<Ahref='../soft/3722.html'target=_blanktitle='浏览软件[F-SecureAnti-Virus病毒码省列去部

分..............

''''''''''''''''''''''''''''codeend'''''''''''''''''

我们所需要的也就定义在mydate里了,但如何来定位呢?大家都知道asp里有left()和right()函数,我

们就用它们来做。我们先来定个函数,

PublicFunctionfinddate(byrefstr,byrefstart,byreflast,byrefn)

IfInstr(lcase(str),lcase(start))>0then

selectcasen

case0'左右都截取(都取前面)(去处关键字)

finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)

finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)

case1'左右都截取(都取前面)(保留关键字)

finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)

finddate=Left(finddate,Instr(lcase(finddate),lcase(last))+Len(last)-1)

endselect

Else

finddate=""

Endif

endfunction

这个就是截取里面内容的函数了

下面我们来得到文章标题:03月10日值得注意病毒列表

dimtitle,artor,content,wherefrom

title=finddate(mydate,"width=540borderColorDark=#ffffff

borderColorLight=#cccccc",</font></b>,1)

这样,我们就把标题定位到了个小范围内了:width=540borderColorDark=#ffffff

borderColorLight=#cccccccellPadding=0cellSpacing=0><tr><tdwidth='100%'align='center'

bgcolor='#CED7F1'height='20'><b><fontcolor='#000000'>03月10日值得注意病毒列表</font></b>

在精确定位下就行了,

title=finddate(title,"<fontcolor='#000000'>","</font></b>",0)

现在,title的值就是:03月10日值得注意病毒列表

artor=finddate(mydate,"作者:</b>","<b>",0)'得到作者

wherefrom=finddate(mydate,"来源:</b><fontcolor=#000000>","</font>",0)'得到来源

content=finddate(mydate,"</td></tr><tr><td><br>","<br><br><iframename=import_frame",0)'得到

正文内容

至此,我们已经得到了我们想要的数据了,在下来就是把title,artor,content,wherefrom入库了,

其实采集入库就怎么简单了,只是在用finddate()是要注意里面byrefstart和byreflast,最好是

mydate里面唯一的,这样便于定位。如不是唯一的,我们可以先缩小范围再来精确定位。有必要时可以弄

个循环来得到数据。完整的代码如下

''''''''''''''''''''codestart'''''''''''''''''''

<%

dimurl,mydate

url="http://www.skycn.com/article/77.html"

SetOXML=server.CreateObject("Microsoft.XMLHTTP")

'下面定义两个函数,得到数据

PrivateFunctionBytesToBstr(body)'利用流进行中文编码

SetADOS=Server.CreateObject("ADODB.Stream")

DimBdat

Bdat=Body

ADOS.Type=1

ADOS.Mode=3

ADOS.Open

ADOS.WriteBdat

ADOS.Position=0

ADOS.Type=2

ADOS.Charset="GB2312"

BytesToBstr=ADOS.ReadText

ADOS.Close

EndFunction

PublicFunctionGetData(byrefurl)

'onerrorresumenext

SourceCode=OXML.open("GET",url,false)

OXML.send()

ifOXML.readystate<>4thenexitfunction

GetData=BytesToBstr(OXML.responseBody)'

iferr.number<>0thenerr.Clear

EndFunction

mydate=getdata(url)

mydate=Replace(mydate,chr(34),"")'去掉一些特殊字符,如双引号等,看自己情况定

mydate=Replace(mydate,chr(16),"")

PublicFunctionfinddate(byrefstr,byrefstart,byreflast,byrefn)

IfInstr(lcase(str),lcase(start))>0then

selectcasen

case0'左右都截取(都取前面)(去处关键字)

finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)

finddate=Left(finddate,Instr(lcase(finddate),lcase(last))-1)

case1'左右都截取(都取前面)(保留关键字)

finddate=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)

finddate=Left(finddate,Instr(lcase(finddate),lcase(last))+Len(last)-1)

endselect

Else

finddate=""

Endif

endfunction

dimtitle,artor,content,wherefrom

title=finddate(mydate,"width=540borderColorDark=#ffffff

borderColorLight=#cccccc","</font></b>",1)

title=finddate(title,"<fontcolor='#000000'>","</font></b>",0)

artor=finddate(mydate,"作者:</b>","<b>",0)

wherefrom=finddate(mydate,"来源:</b><fontcolor=#000000>","</font>",0)

content=finddate(mydate,"</td></tr><tr><td><br>","<br><br><iframename=import_frame",0)

callintomdb(title,artor,content,wherefrom)

functionintomdb(title,artor,content,wherefrom)

'''''''''''''''''''''''''''''''''''

'''这个是入库的函数,自己定义下就可以了

'''''''''''''''''''''''''''''''''''

endfunction

%>

我这里只是以采集文章为例,其它的采集软件等都是这个道理。

说了怎么多,我也不知道各位能不能看懂,如看不动那可能是我不会表达了,大家见谅。毕竟我没读过文

科,^_^

我只是讲原理,程序是靠自己写的,要采集的速度快,你还可以写成exe的啊,这样比较快,占内存少

【也谈采集入库的技术】相关文章:

asp中一段防SQL注入的通用脚本

ASP采集入库生成本地文件的几个函数

一段采集程序代码

asp中创建多级目录的两段代码

系统分配随机密码

ASP跳出本次循环进入下一循环的方法

提供几个关于采集的函数(ASP)

自己做采集程序

关于ASP的日期计算问题

创力采集程序用到的函数 推荐第1/3页

上一篇: E-mail表单递交
精品推荐
分类导航