制作自己的网络搜索软件(转)

上传人:平*** 文档编号:9816608 上传时间:2017-10-04 格式:DOC 页数:6 大小:35.78KB
返回 下载 相关 举报
制作自己的网络搜索软件(转)_第1页
第1页 / 共6页
制作自己的网络搜索软件(转)_第2页
第2页 / 共6页
制作自己的网络搜索软件(转)_第3页
第3页 / 共6页
制作自己的网络搜索软件(转)_第4页
第4页 / 共6页
制作自己的网络搜索软件(转)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《制作自己的网络搜索软件(转)》由会员分享,可在线阅读,更多相关《制作自己的网络搜索软件(转)(6页珍藏版)》请在金锄头文库上搜索。

1、作者:meteoremail: 日期:9/4/2001 10:28:00 AM大家都知道,获得信息是我们上网的很大一个目的,而获得信息对于大多数人来说要通过网上的搜索引擎来搜索自己所需要的信息,而搜索软件通过向搜索站点发出特殊搜索字串命令(各个站点的格式不一样) ,然后用软件对结果进行处理后显示出来。原理简单,可是效果却是显著的,能够迅速而方便的搜索到各个站点的信息。下面我就通过介绍使用 vb制作自己的搜索软件和剖析现在流行的搜索软件程序来介绍这些内容: 我们都知道 vb是最简单方便的编程语言,利用 vb编写一个小小的搜索软件用不了多少行语句。第一步当然要安装一个 vb5.0或者 6.0 的运

2、行环境。启动 vb以后,首先创建了一个窗体,然后要对运行环境进行一下设置:具体来说呢,就是添加上必要的控件,一般来说,如果您安装了 IE4.0以上的浏览器,windows 的 system 目录中就会有 SHDOCVW.DLL的文件,我们通过点击菜单中“工程”-“部件” ,在弹出的对话框中找到有一栏写着”microsoft internet controls”的选项,这个选项其实就是上面提到的 SHDOCVW.DLL 文件的描述。利用这个文件我们可以初始化一个浏览器的实例。当您选中这个选项后,会发现工具栏中多了一个形状如同地球的按钮,这就是刚才选中的浏览器控件,我们双击这个图标按钮在窗体上生成

3、一个 webbrowser1 的部件,接下来我们就使用这个部件来显示查询的结果。接下来我们在窗体上放上一个文本框和一个按钮,其实就这几个部件已经可以算是一个最小的搜索程序基本结构了。我们现在来所一说网络搜索的原理:上面已经提到是通过向搜索站点发出特殊搜索字串命令(各个站点的格式不一样) ,然后用软件对结果进行处理后显示出来,但如何发出搜索字符串、发出怎样的字符串还需要有一定的 HTML 知识。我们知道对于网上信息的的发送是通过表单的形式来发送的,也就是说当我们在网上点击某些表单时,通过表单中包含的默认地址中的表单处理程序来接受所有包含在表单中的信息,而这些信息有的是显示的,而另外一些却是隐藏的

4、。您可以试着将一个包含有表单的网页用 Frontpage或者 Dreamwaver打开,这时你就会发现有很多用浏览器看不到的东西,这些隐藏的标志同样在您发送表单时起着重要的作用。没有这些标志,发出的字符串很可能得不到服务器的应答。我们知道了这些,再返回头来看我们程序所需发出的字符串,举个例子来说:最常用的雅虎中文的搜索代码是 ”http:/ Yeah,它的搜索代码相对复杂了一些是”http:/ ,但基本的东西没有变,它们都是使用了这样一种形式:http:/目标 URL?参数 1名=参数 1值&参数 2名=参数 2值&参数 3名=参数 3值对于 http协议,其中包括重要的几种传送数据的方法,其

5、中比较常用的有 GET和 POST方法,对于使用 GET方法进行传送数据的网站来说,使用上面的形式百发百中,都能够通过一条查询语句返回所需要查询的内容网页,但对于使用 POST方法的网站,有可能返回不了查询结果网页,不过从我的经验看,一般来说是能够成功的。知道了如何向服务器发送查询语句,下面我们就从程序的角度来写:假若窗体上有一个文本框 Text1、一个标签 Label1、一个浏览器 Webbrowser1、一个按钮 Command11,其中文本框用于输入关键词,浏览器用于显示查询结果网页,按钮用于发出请求语句,那么点击Command1的程序语句可以这样写:Private Sub Comman

6、d1_Click()Dim url As StringOn Error Resume Next 出错后继续If Text1.Text = Then MsgBox 请先输入关键字: Exit Sub 防止不输入关键词url = http:/ +Text1.Text 将关键词放入查询语句中Webbrowser1.Navigate url调用浏览器显示查询结果End Sub雅虎的查询语句比较简单,而对于比较复杂网站的查询语句一定要注意的是各个关键参数之间一定要用“&”来隔开。虽然你只是学会了这一招,但已经足够利用网上的资源来编写你的第一个程序了,因为网上所有类型的表单都能表示了,无论是查询股票、软件

7、、书籍、图片,都不外乎这种模式。只要你将查询网页调入 Frontpage、Dreamwaver 等所见即所得的网页编辑软件中,便会毫无遮拦的展现在你的面前,利用这些链接,再加上一个好的界面,当然可以制作自己的搜索工具软件了,不过要注意的是,有些表单的传送路径的是相对路径,这时要加上网站的地址链接。可能有人要说,这么简单,谁不知道,不是为了赚稿费吧?错。刚才的方法比起直接访问搜索站点的确能节省不少上网的时间,但并没有将程序的优势全部发挥出来,我们现在继续讲另外一种检索网页的方法:首先介绍一个控件 Microsoft Internet Transfer(这个控件在安装 vb或者某些程序的时候会自动

8、安装) ,这个控件允许建立与其他计算机的链接,并传送文件。它使两个 Internet规则 HTTP 和 FTP的使用变得容易。当正常访问一个网页时,Internent Transfer用 GET命令访问网络浏览器的一个文件。例如,如果打开了 URL http:/ 的机器的链接,并传送命令 GET/index.htm。HTML 将通过链接以普通文本的方式返回,因为返回的内容只是所要的网页的源文件,节省了很多用于传送显示网页中图像的时间,速度要快了许多,但最重要的是我们可以很方便地使用自己的逻辑对凡会的源文件进行正确地分析和格式化,重新整理网页的查询结果。我们还用刚才的窗体,只是要在菜单中选择“工

9、程“-”部件“,在弹出的对话框中找到一项是:Microsoft Internet Transfer Control,选中后,在工具栏中您就会发现增添了一个显示有地球和计算机的小按钮,双击这个按钮会在窗体上加入一个 Internet Transfer实例 Inet1,完成了这些步骤后,窗体应如图一所示。现在准备在实例工程中加入代码。Internet Transfer 控件有一个事件 StateChanged。这个事件的目的是当不同的操作发生时通知用户程序。例如:控件在与网络服务器链接时是一种状态,检索 HTML是另一种状态。当前的状态用事件过程的 State 参数来表示。在示例程序的 State

10、Changed事件中输入如下代码:Private Sub Inet1_StateChanged(ByVal State As Integer)Select Case StateCase 12 表明网络连接检索正常stemp=Inet1.GetChunk(1024) 使用 GetChunk方法从缓冲区中一次提取 1024个字节的回应文本,并存放在 stemp临时变量中While stemp”来结尾,这样一来就清楚了,只要把代码中所有的满足以上条件的语句删掉,这样代码中就不会出现直接图片信息,我们参考以下的一段代码:Public Function picFilter(downCode)定义一个过滤

11、图片信息的过程Dim pStart As Long, pStop As LongDim pString1 As String, pString2 As StringpString1 = 分别将两个关键词定义pStart = InStr(downCode, pString1)找到第一个图片信息的起始位置If pStart ”Do While pStart ”开始,以“”结束,而在“” 和接下来的第一个“sString2 = sString3 = 0sStop = InStr(sStart, downCode, sString2)string1 = Mid(downCode, sStart + 4

12、, sStop - sStart) 将第一条主题信息存放在string1变量中sStart = InStr(sStop, downCode, sString1) 从第一条主题信息的结束部位开始查找该主题的简单描述sStart = sStop + 4sStop = InStr(sStart, downCode, sString3) 取得该主题描述部分的结束位置If sStop = sStart Then 判断只有主题而没有描述的信息string2 = ElseIf sStop + string1 + string2 将提炼的结果存放在临时变量中sStart = InStr(sStop, down

13、Code, sString1)重新定位下一条信息的起始位置Loop循环yahooFilter = lastStringEnd Function经过了上面复杂的提炼,然后将提炼的结果写到一个网页文件中,然后调用浏览器显示,会出现整整齐齐的结果,象图二一样:返回头来我们看一下现在比较流行的搜索软件,比如 SearchX98、Crazysearch、Inforian Quest 99,无论他们说明写的再好,也跳不出上面所说的原理,但他们各自有自己的一些独特之处,比如 SearchX98 能够连续搜索多个引擎,其实就是发出一条搜索指令后,程序本身连续在各个搜索引擎发出搜索指令,将返回的结果经过简单的处

14、理生成一个页面,其他的内容搜索更是最简单的直接发出搜索指令而已。而对于 Crazysearch,你只要打开注册表,就会发现其中文搜索只能搜索中文雅虎,英文只能搜索 Excite,但号称注册版本能够搜索 1000条记录,其实您只要分析一下雅虎的搜索代码就会发现,其中有一个关键词是 “n=”,代表一次搜索返回的结果数目;另外一个是“b=” ,代表从第几条记录开始显示,就这两个关键词起到了这么重大的作用,但 Crazysearch的独特之处在于返回的搜索结果以表格方式排列,直观醒目。最后要推荐的是 Inforian Quest 99,尽管其原理也超脱不了以上的范围(您只要打开其目录下的 site子目录中的文件就清楚了) ,但我还是极力推荐,因为无论是从站点的数量,搜索范围的广泛,搜索的速度,结果的详细,没有能过超过 Inforian Quset 99的,而且要差很多。当然基于对国产软件的支持,我们还是可以对上面的两个软件寄予厚望。同是由于本人水平有限,难免有疏漏之处,敬请大家指正。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号