站长资讯 | 站长常用软件 | 站长工具 | 为奥运祝福!
文章投稿 当前位置:主页>网站运营>建站经验>文章:做采集的一些经验,新手希望能兜少点圈

做采集的一些经验,新手希望能兜少点圈

来源:站长资讯网 作者:小东东 发布时间:2006-12-15 阅读次数:  
决定原创的超实用技术:自己做采集


其实,我觉得这贴一定要加分,甚至可以加精华了,我写的故事都是失败故事帮不了大家所以今天给大家一些实用点的,我写了N次长文章了,此次都写长文章的,没写过一篇短的,虽然对于好多老手来说不是什么但我知道对于新手来说是很要害的,就是教你

如何订做采集器,把技术给你们了,首先,我先给大家介绍几个常用的函数.
也许你会问,到底什么是函数?是啊,新手啊有些是给了函数也不会用的,我自己以前也是这样,所以,我会具体解析的.先贴出来吧:
第一个是:用XML获取网页内容的函数
Function GetPage(url)
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetPage = BytesToBstr(.ResponseBody)
End With
Set Retrieval = Nothing
End Function

这个函数怎么用呢?用法是这样的,首先要先定义了先,到你想用的时候,你就GetPage然后打上括号,然后在括号里面写网址.注重的是假如网址是

字符的而不是函数的,就要用""双引号括起来,假如是变量就不用了,假如是字符加变量就要在中间加个&,明白吗?例如我想获取

http://www.abc.com/abc/abc.htm的内容的话就写成 GetPage("http://www.abc.com/abc/abc.htm") 当然了不能单用的要用的时候把他同时赋

值给变量了,例如变量是a,那就是GetPage("http://www.abc.com/abc/abc.htm") 了,呵呵.

第二个函数是,获取你需要的内容.
Function GetContent(str,start,last,n)
If Instr(lcase(str),lcase(start))>0 then
select case n
case 0 '左右都截取(都取前面)(去处要害字)
GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start) 1)
GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last))-1)
case 1 '左右都截取(都取前面)(保留要害字)
GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start)) 1)
GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last)) Len(last)-1)
case 2 '只往右截取(取前面的)(去除要害字)
GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start) 1)
case 3 '只往右截取(取前面的)(包含要害字)
GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start)) 1)
case 4 '只往左截取(取后面的)(包含要害字)
GetContent=Left(str,InstrRev(lcase(str),lcase(start)) Len(start)-1)
case 5 '只往左截取(取后面的)(去除要害字)
GetContent=Left(str,InstrRev(lcase(str),lcase(start))-1)
case 6 '只往左截取(取前面的)(包含要害字)
GetContent=Left(str,Instr(lcase(str),lcase(start)) Len(start)-1)
case 7 '只往右截取(取后面的)(包含要害字)
GetContent=Right(str,Len(str)-InstrRev(lcase(str),lcase(start)) 1)
case 8 '只往左截取(取前面的)(去除要害字)
GetContent=Left(str,Instr(lcase(str),lcase(start))-1)
case 9 '只往右截取(取后面的)(包含要害字)
GetContent=Right(str,Len(str)-InstrRev(lcase(str),lcase(start)))
end select
Else
GetContent=""
End if
End function

有注释的你看到了吗?分别是N=0到N=9时候的区别,函数的用法是GetContent(str,start,last,n),STR那里写你的字符串,star那里写你开头截取

的部分,last那里写你结为部分那么系统就会确定到你所要截取的部分了,简答吧?就一句就行了,呵呵.这里,很要害很要害很要害的一个问题是,

新手经常碰到的问题是,怎么处理""呢?这问题很要害,网上流传什么变成单引号啊,什么用vbscript引用啊,什么变成&"什么的,都胡说,为了你省

时间我告诉你吧,其实学过VBSCRIPT的都知道,当处理的字符中有双引号的应该变成双双引号,就是""变成"""",呵呵"就变成"","""""就变

成""""""""""反正是两倍了,呵呵简单吧?新手经常因为这个兜很多弯重复截取N次才能得到自己想要的内容,现在知道了这个是不是爽好多了?

第三个函数:内码转换,很多时候出现乱码的可能是人家的是asp,net开发的时候软件是不是官方中文版的,也许是你采集的网站本来就是标注用其他非中文的码的原因很多但转好了就没错了,照写就是,呵呵,
Function BytesToBstr(body)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
这个函数简单吧?只有body了,呵呵你肯定会用了,

还有采集的很多注重的内容,关于入库啊,如何用日期随机生成文件名啊,如何用要害字做文件名更利于采集啊,还有如何做定时器定是采集啊等等,还有很多常用的小技巧要告诉大家,但这次就先到这!希望大家能喜欢


文章地址:   http://www.xinasp.com/html/wangzhanyunying/jianzhanjingyan/20061215/2917.shtml
tag: 希望 新手 经验 一些 采集
    评论加载中…
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 成员列表
© CopyRight 2002-2008, XINASP.COM, Inc. All Rights Reserved 客服QQ:762264 MAIL:QESY#163.COM
浙ICP备06014044号