也谈采集入库的技术

落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例:
[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的啊,这样比较快,占内存少

(0)

相关推荐

  • 也谈采集入库的技术

    落伍的贴也看了很多了,发现了很多讲小偷技术的,如精华贴里的--小偷程序原理和简单示例: [url]http://www.im286.com/viewthread.php?tid=407182&extra=page%3D1[/url] 等等,也有提供采集程序下载的,但我还没看到一篇完整的入库的文章,或许是我看的贴少吧.虽然不是很深奥,我还是讲讲吧,希望高手别见笑啦,以前发了个原创的影视系 统,却没落伍,这次再求落伍啦,希望大家帮顶下,也希望我能落伍!! 入库也和小偷一样,要先得到需入库的部分,我这

  • 解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法

    -------------------------------------------------------- 风十三 落伍首发  转载请注明作者和出处 ------------------------------------------------------ 1.如何修改默认发布为动态页: 这个其实很简单,会改html就可以了!把dede文件夹打开,用编辑器打开article_add.php,找到<td width="90">发布选项:</td>     

  • 浅谈Java的SPI技术

    人狠话不多,先上截图和代码吧. 这是工程目录.看到resources目录下面没有,添加了META-INF和services目录. 添加了一个com.gys.test.IAnimal文件.这个文件名和上面的接口名完全对应.这个目录的文件名是有讲究的,按照SPI规范来的. 上代码: package com.gys.test; public interface IAnimal { void eat(); } package com.gys.test.impl; import com.gys.test.

  • 浅谈鸿蒙 JavaScript GUI 技术栈

    作者:doodlewind 链接:https://juejin.im/post/6872154561574862855 众所周知,刚刚开源的「鸿蒙 2.0」以 JavaScript 作为 IoT 应用开发的框架语言.这标志着继 SpaceX 上天之后,JavaScript 再一次蹭到了新闻联播级的热点.这么好的机会,只拿来阴阳怪气实在太可惜了.作为科普,这篇文章不会拿着放大镜找出代码中的槽点来吹毛求疵,而是希望通俗地讲清楚它所支持的 GUI 到底是怎么一回事.只要对计算机基础有个大概的了解,应该

  • 浅谈JavaScript中面向对象技术的模拟

    一.引言 在C#和Java语言中,面向对象是以类的方式实现的,特别是继承这个特性,类的方式继承表现出了强大的功能,而且也易于学习.JavaScript不是纯的面向对象的语言,而是基于对象的语言,对象的继承是以原型函数的形式继承的,很多初学者刚开始接触的时候不太理解,但是JavaScript这种以原型函数的形式实现面向对象技术,不仅是可行的,而且还为面向对象技术提供了动态继承的功能,本文主要讨论了JavaScript的面向对象技术. 二.原型对象概述 每个JavaScript对象都有原型对象,对象

  • 小偷&小偷入库&采集入库

    XMLHTTP应用参考  一.使用步骤:  1.创建XMLHTTP对象 //需MSXML4.0支持  2.打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等.客户端通过Open命令打开与服务端的服务网页的连接.与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页.  3.发送指令.  4.等待并接收服务端返回的处理结果.  5.释放XMLHTTP对象 二.XMLHTTP方法:  1.XMLHTTP对象  备注:

  • 浅谈vue项目重构技术要点和总结

    前言 最近太忙了,博客好久没有更新了.今天忙里偷闲,简单总结一下最近vue项目重构的一些技术要点. vue数据更新, 视图未更新 这个问题我们经常会遇到,一般是vue数据赋值的时候,vue数据变化了,但是视图没有更新.这个不算是项目重构的技术要点,也和大家分享一下vue2.0通常的解决方案吧! 解决方案如下: 1.通过vue.set方式赋值 Vue.set(数据源, key, newValue) 2. 通过Array.prototype.splice方法 数据源.splice(indexOfIt

  • 浅谈Android 指纹解锁技术

    什么是指纹解锁技术 根据人的指纹来验证是否能够解锁的技术,类似于通过输入密码来解锁,都是通过一定的数字特征来解锁. 指纹解锁技术原理理解 首先说明每个人的每个指纹信息都是独一无二的,皮肤纹路在图案,断点,交叉点上各不相同,通过光学感应读出指纹的图片信息也是独一无二的. 先保存一个人的指纹特征(图片信息根据算法生成的数据),然后再使用时利用这个人的这个指纹特征去和先前保存的指纹特征做对比,对比一致则解锁成功,对比不一致则解锁失败,对比结果并不是100%一样,而可以按照一个比例来判定,比如90%一样

  • perl 采集入库脚本分享

    #!/usr/bin/perl -w use DBI; use POSIX qw(strftime); my $dbh = DBI->connect("DBI:mysql:shencan:111.1.32.153:3306″,"shencan","shencan"); #my $sql = "select * from shencan.LVS"; #my $sth = $dbh->prepare($sql); #$sth-&

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

    '*****************************************************************' function' 作用 :利用流保存文件' 参数 :from(远程文件地址),tofile(保存文件位置)'*****************************************************************Private Function SaveFiles(byref from,byref tofile)Dim DatasDa

随机推荐