小东东 发表于 2006-12-15 00:50
sqR中国域名交易资讯网做采集的一些经验,新手希望能兜少点圈
决定原创的超实用技术:自己做采集
sqR中国域名交易资讯网sqR中国域名交易资讯网sqR中国域名交易资讯网其实,我觉得这贴一定要加分,甚至可以加精华了,我写的故事都是失败故事帮不了大家所以今天给大家一些实用点的,希望能落伍,不落伍就太不
sqR中国域名交易资讯网sqR中国域名交易资讯网公平了,我写了N次长文章了,此次都写长文章的,没写过一篇短的,虽然对于好多老手来说不是什么但我知道对于新手来说是很关键的,就是教你
sqR中国域名交易资讯网sqR中国域名交易资讯网如何订做采集器,把技术给你们了,首先,我先给大家介绍几个常用的函数.
sqR中国域名交易资讯网 也许你会问,到底什么是函数?是啊,新手啊有些是给了函数也不会用的,我自己以前也是这样,所以,我会详细解析的.先贴出来吧:
sqR中国域名交易资讯网第一个是:用XML获取网页内容的函数
sqR中国域名交易资讯网Function GetPage(url)
sqR中国域名交易资讯网 Set Retrieval = CreateObject("Microsoft.XMLHTTP")
sqR中国域名交易资讯网 With Retrieval
sqR中国域名交易资讯网 .Open "Get", url, False, "", ""
sqR中国域名交易资讯网 .Send
sqR中国域名交易资讯网 GetPage = BytesToBstr(.ResponseBody)
sqR中国域名交易资讯网 End With
sqR中国域名交易资讯网 Set Retrieval = Nothing
sqR中国域名交易资讯网End Function
sqR中国域名交易资讯网sqR中国域名交易资讯网这个函数怎么用呢?用法是这样的,首先要先定义了先,到你想用的时候,你就GetPage然后打上括号,然后在括号里面写网址.注意的是如果网址是
sqR中国域名交易资讯网sqR中国域名交易资讯网字符的而不是函数的,就要用""双引号括起来,如果是变量就不用了,如果是字符加变量就要在中间加个&,明白吗?例如我想获取
sqR中国域名交易资讯网sqR中国域名交易资讯网[url]http://www.abc.com/abc/abc.htm[/url]的内容的话就写成 GetPage("http://www.abc.com/abc/abc.htm") 当然了不能单用的要用的时候把他同时赋
sqR中国域名交易资讯网sqR中国域名交易资讯网值给变量了,例如变量是a,那就是GetPage("http://www.abc.com/abc/abc.htm") 了,呵呵.
sqR中国域名交易资讯网sqR中国域名交易资讯网 第二个函数是,获取你需要的内容.
sqR中国域名交易资讯网Function GetContent(str,start,last,n)
sqR中国域名交易资讯网 If Instr(lcase(str),lcase(start))>0 then
sqR中国域名交易资讯网 select case n
sqR中国域名交易资讯网 case 0 '左右都截取(都取前面)(去处关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
sqR中国域名交易资讯网 GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last))-1)
sqR中国域名交易资讯网 case 1 '左右都截取(都取前面)(保留关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
sqR中国域名交易资讯网 GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last))+Len(last)-1)
sqR中国域名交易资讯网 case 2 '只往右截取(取前面的)(去除关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
sqR中国域名交易资讯网 case 3 '只往右截取(取前面的)(包含关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
sqR中国域名交易资讯网 case 4 '只往左截取(取后面的)(包含关键字)
sqR中国域名交易资讯网 GetContent=Left(str,InstrRev(lcase(str),lcase(start))+Len(start)-1)
sqR中国域名交易资讯网 case 5 '只往左截取(取后面的)(去除关键字)
sqR中国域名交易资讯网 GetContent=Left(str,InstrRev(lcase(str),lcase(start))-1)
sqR中国域名交易资讯网 case 6 '只往左截取(取前面的)(包含关键字)
sqR中国域名交易资讯网 GetContent=Left(str,Instr(lcase(str),lcase(start))+Len(start)-1)
sqR中国域名交易资讯网 case 7 '只往右截取(取后面的)(包含关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-InstrRev(lcase(str),lcase(start))+1)
sqR中国域名交易资讯网 case 8 '只往左截取(取前面的)(去除关键字)
sqR中国域名交易资讯网 GetContent=Left(str,Instr(lcase(str),lcase(start))-1)
sqR中国域名交易资讯网 case 9 '只往右截取(取后面的)(包含关键字)
sqR中国域名交易资讯网 GetContent=Right(str,Len(str)-InstrRev(lcase(str),lcase(start)))
sqR中国域名交易资讯网 end select
sqR中国域名交易资讯网 Else
sqR中国域名交易资讯网 GetContent=""
sqR中国域名交易资讯网 End if
sqR中国域名交易资讯网End function
sqR中国域名交易资讯网sqR中国域名交易资讯网有注释的你看到了吗?分别是N=0到N=9时候的区别,函数的用法是GetContent(str,start,last,n),STR那里写你的字符串,star那里写你开头截取
sqR中国域名交易资讯网sqR中国域名交易资讯网的部分,last那里写你结为部分那么系统就会确定到你所要截取的部分了,简答吧?就一句就行了,呵呵.这里,很关键很关键很关键的一个问题是,
sqR中国域名交易资讯网sqR中国域名交易资讯网新手经常遇到的问题是,怎么处理""呢?这问题很关键,网上流传什么变成单引号啊,什么用vbscript引用啊,什么变成&"什么的,都胡说,为了你省
sqR中国域名交易资讯网sqR中国域名交易资讯网时间我告诉你吧,其实学过VBSCRIPT的都知道,当处理的字符中有双引号的应该变成双双引号,就是""变成"""",呵呵"就变成"","""""就变
sqR中国域名交易资讯网sqR中国域名交易资讯网成""""""""""反正是两倍了,呵呵简单吧?新手经常因为这个兜很多弯重复截取N次才能得到自己想要的内容,现在知道了这个是不是爽好多了?
sqR中国域名交易资讯网sqR中国域名交易资讯网第三个函数:内码转换,很多时候出现乱码的可能是人家的是asp,net开发的时候软件是不是官方中文版的,也许是你采集的网站本来就是标注用其他非中文的码的原因很多但转好了就没错了,照写就是,呵呵,
sqR中国域名交易资讯网Function BytesToBstr(body)
sqR中国域名交易资讯网 dim objstream
sqR中国域名交易资讯网 set objstream = Server.CreateObject("adodb.stream")
sqR中国域名交易资讯网 objstream.Type = 1
sqR中国域名交易资讯网 objstream.Mode =3
sqR中国域名交易资讯网 objstream.Open
sqR中国域名交易资讯网 objstream.Write body
sqR中国域名交易资讯网 objstream.Position = 0
sqR中国域名交易资讯网 objstream.Type = 2
sqR中国域名交易资讯网 objstream.Charset = "GB2312"
sqR中国域名交易资讯网 BytesToBstr = objstream.ReadText
sqR中国域名交易资讯网 objstream.Close
sqR中国域名交易资讯网 set objstream = nothing
sqR中国域名交易资讯网End Function
sqR中国域名交易资讯网这个函数简单吧?只有body了,呵呵你肯定会用了,
sqR中国域名交易资讯网sqR中国域名交易资讯网还有采集的很多注意的内容,关于入库啊,如何用日期随机生成文件名啊,如何用关键字做文件名更利于采集啊,还有如何做定时器定是采集啊等等,还有很多常用的小技巧要告诉大家,但这次就先到这,如果我落伍了我以后经常发这些帖子.呵呵.
周润发周星驰 发表于 2006-12-15 01:11sqR中国域名交易资讯网
好文章,顶
男人装做到 发表于 2006-12-15 01:38sqR中国域名交易资讯网
技术的东西看不懂,顶
小东东 发表于 2006-12-15 01:45sqR中国域名交易资讯网
我已经写得超简单的了
已经写的超简单的了,结合自己当初菜鸟的时候的经验写的哦,还有续集,不知道还该不该写,呵呵原来大家对这没什么兴趣,呵呵
东莞南城 发表于 2006-12-15 04:49sqR中国域名交易资讯网
小东东.帮你顶了.
ljjk5 发表于 2006-12-15 08:54sqR中国域名交易资讯网
不错阿。
68890339 发表于 2006-12-15 08:58sqR中国域名交易资讯网
不错啊~! 精华啊
春天向北飞 发表于 2006-12-15 09:30sqR中国域名交易资讯网
哦,看着不错。
sqR中国域名交易资讯网sqR中国域名交易资讯网等用的时候再来了。
monkeys 发表于 2006-12-15 09:46sqR中国域名交易资讯网
不错,要顶~
pengxing 发表于 2006-12-15 10:01sqR中国域名交易资讯网
好东西.一直想学采集的说
乱七八糟 发表于 2006-12-15 11:53sqR中国域名交易资讯网
这个好象是小偷吧,
2e7.net 发表于 2006-12-15 16:50sqR中国域名交易资讯网
[code]
sqR中国域名交易资讯网汗,只写了小偷介绍,这个贴发到代码块吧,与站长故事完全无关。
sqR中国域名交易资讯网[/code]
sqR中国域名交易资讯网sqR中国域名交易资讯网:ohh:
movie988 发表于 2006-12-15 17:25sqR中国域名交易资讯网
不懂技术 但是看有明白人顶 ,那我就支持一下吧 毕竟写几百个字也要花时间的
impop 发表于 2006-12-15 17:56sqR中国域名交易资讯网
:lol:
wxg8899 发表于 2006-12-16 15:16sqR中国域名交易资讯网
看不懂,顶;)
小东东 发表于 2006-12-17 02:56sqR中国域名交易资讯网
呵呵不好意思,
那我以后把这类文章发到技术区就好了,呵呵
此山云深 发表于 2006-12-17 21:59sqR中国域名交易资讯网
技术贴,现在还看不懂,需要的时候再来看
sqR中国域名交易资讯网sqR中国域名交易资讯网