首页 > 网站运营 > > 正文
进入 域名交易资讯论坛

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

作者:小东东    来源:落伍者论坛   更新时间:12-15点击:评论:0

小东东 发表于 2006-12-15 00:50sqR中国域名交易资讯网

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

决定原创的超实用技术:自己做采集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 FunctionsqR中国域名交易资讯网
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 thensqR中国域名交易资讯网
                select case nsqR中国域名交易资讯网
                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 selectsqR中国域名交易资讯网
        ElsesqR中国域名交易资讯网
                GetContent=""sqR中国域名交易资讯网
        End ifsqR中国域名交易资讯网
End functionsqR中国域名交易资讯网
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 objstreamsqR中国域名交易资讯网
        set objstream = Server.CreateObject("adodb.stream")sqR中国域名交易资讯网
        objstream.Type = 1sqR中国域名交易资讯网
        objstream.Mode =3sqR中国域名交易资讯网
        objstream.OpensqR中国域名交易资讯网
        objstream.Write bodysqR中国域名交易资讯网
        objstream.Position = 0sqR中国域名交易资讯网
        objstream.Type = 2sqR中国域名交易资讯网
        objstream.Charset = "GB2312"sqR中国域名交易资讯网
        BytesToBstr = objstream.ReadText sqR中国域名交易资讯网
        objstream.ClosesqR中国域名交易资讯网
        set objstream = nothingsqR中国域名交易资讯网
End FunctionsqR中国域名交易资讯网
这个函数简单吧?只有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中国域名交易资讯网
 
评论】【加入收藏夹】【打印】【关闭
  • 上一篇文章:一个IT人士的个人经历, 给那些迷失方向的朋友

  • 下一篇文章:[seo相关]关键词表现:“登陆”雄据百度之首及一点SEO优化心得

  • 频道最新
    热门排行