说说采集加入库(菜鸟版)
一次听到小偷程序很好奇,于是下了个研究研究。看到小偷使用的几个主要函数,instr,mid,replace...等等,然后我结合了数据库将采集的数据写进去,很有成就感,呵呵,我相信还有好写朋友不知道怎么弄,下面我来说说我懂的一点皮毛!先说说几个函数的用途吧,这个对新手来说是最主要的。。。
1 : instr(start,string1,string2,compare)
这个函数返回string2在string1中第一次出现的位置,start表示开始搜索的位置,可省略(省略时表示从string1开始位置搜索),compare表示在计算子字符串时使用的比较类型的数值(我从来没用过,一般都省略好了)
说的可能不够清楚,举几个例子
num = Instr(1, "SearchString", "c"),返回为num=5,因为"c"在"SearchString"中第一次出现的位置是5
num = Instr("SearchString", "c"),返回为num=5,1省略表示从开始搜索,同上一样
num = Instr(5, "SearchString", "c"),返回还是5,但Instr(6, "SearchString", "c")返回0,因为从第6位开始找不到字符"c"了
2 : mid(string,start,length)
这个函数从字符串中返回指定数目的字符。
如我们想从"abcdefghijklmn"中得到"efg",可以用如下形式mid("abcdefghijklmn",5,3)则返回"efg",式中5表是"e"开始的位置,3表示字符串长度
写到这里我们结合前面instr函数来写写怎么获得"efg"
首先,用instr函数得到"efg"字符出现的位置,如下start=instr("abcdefghijklmn","e"),如此mid("abcdefghijklmn",5,3)中的5就可以用start代替,mid("abcdefghijklmn",start,3)同样返回"efg"
如果我们不知道所要获得的字符串长度,可以再用一次instr函数先得到"h"出现的位置,如下end=instr("abcdefghijklmn","h"),如此我们可以得到字符串的长度length=end-start,(有人可能会说用len("efg")不是可以得到"efg"的长度吗?,问题是当我们连我们要得到什么数据都不知道,而只知道字符串结束后的第一个字符时。。。。小偷程序就是这样)
3 : split(string1,string2)
废话不说,直接讲怎么用吧,假如我们有如下字符传"abxcdfxfghixhnmgsff",我们用str=split("abxcdfxfghixhnmgsff","x"),结果就是str(0)="ab",str(1)="cdf",str(2)="fghi",str(3)="hnmgsff",看出什么了吗,split(string1,string2)用string2分割string1,返回是一个数组,大家可以从例子看出。
说到split(string1,string2)函数随便说说另一个很有用的函数ubound(string),返回指定数组维数的最大可用下标。 如上面得到的str,我们用ubound(str),返回就是3,因为str数组最大可用下标就是3
关于函数的详细大家可以查看我附件中的 VBSCRIPT 速查手册.chm
其实上面的说了等于白说,还是举几个例子比较容易懂
如我们要获得[url=http://read.hjsm.tom.com/book/6094/html/2001.html]http://read.hjsm.tom.com/book/6094/html/2001.html[/url]这个网页下的文章标题,和内容
用getHTTPPage(url)函数得到网页源码,getHTTPPage(url)函数我用了前些天写采集入库技术的作者编的函数,源码请看[url=http://www.im286.com/viewthread]http://www.im286.com/viewthread[/url]. ... amp;extra=page%3D18
用法如下
url="[url=http://read.hjsm.tom.com/book/6094/html/2001.html]http://read.hjsm.tom.com/book/6094/html/2001.html[/url]"
http=getHTTPPage(url)
得到http=
新宋[url]http://www.hjsm.net[/url]">幻剑书盟 > [url]http://www.hjsm.net/author/1823/index.php[/url]">阿越的会客室 > [url]http://www.hjsm.net/book/6094/index.php[/url]">新宋 > [url]http://www.hjsm.net/book/6094/html/contents.html[/url]">新宋目录
第一卷 十字
第一节 熙宁二年
我完全不记得我是怎么样来到这个世界了。但是当我知道自己居然成为又一位回到古代的同志,并且是回到了被陈寅恪称之为“华夏民族之文化,历数千记得曾经有人写过最想生活的十个历史时期,宋仁宗柳永的时代赫然入选,现在虽然是西。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。只有大户人家才用得起了。
唐棣虽然不太看得起生意人,但是对我这种新奇的发明,却也很是赞叹。不到一个冬季,我就由一无所有变成一个小财主,也是唐棣所料想不到的。但是我所得意的却是这是自己来到古代后,给这个世界带来的第一个变化。
© [url]http://www.hjsm.net[/url]">幻剑书盟整理
中间省略内容n多
我们如何先得到“第一节 熙宁二年”这个标题呢,用instr()函数得到""字符串出现的位置,如下start=instr(http,"")然后加上""的长度len("")即得到标题出现的首位置,再用instr()函数从start开始查找""第一次出现的位置,end=instr(start,http,""),到此我们就可以算出标题的长度
length=end-(start+len(""))
用mid()函数得到标题
biaoti=mid(http,start+len(""),length)
按照上面的方法还可以得到文章的内容,具体不在这废话,大家可以从附件中找到完整的代码,里面有详细的注释
并且简单补全了前几天那位作者的入库函数,大家可以看到程序如何获得数据,并加到数据库中,看着实例学习是我认为最简单的学习方法,程序正常工作后的那个成就感。。。。。。。奥,,,,,,,呵呵 呵, 怎么跟我学的编程 那么像呢?
页:
[1]