手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

制作自己的网络搜索软件

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  Internet Transfer控件有一个事件StateChanged。这个事件的目的是当不同的操作发生时通知用户程序。例如:控件在与网络服务器链接时是一种状态,检索HTML是另一种状态。当前的状态用事件过程的State 参数来表示。在示例程序的StateChanged事件中输入如下代码:

Private Sub Inet1_StateChanged(ByVal State As Integer)

Select Case State

Case 12 '表明网络连接检索正常

stemp=Inet1.GetChunk(1024) '使用GetChunk方法从缓冲区中一次提取1024个字节的回应文本,并存放在stemp临时变量中

While stemp<>””'当仍然返回信息时

LastResult=LastResult stemp'将整个网页的源文件代码放入LastResult变量中

stemp=Inet1.GetChunk(1024)'循环

Wend

Case 11

MsgBox "未返回搜索结果"

End Select

End Sub

  尽管StateChanged事件包含了这个示例程序代码的主要部分,我们仍然需要在Command1的Click事件中加入代码,以初始化这个请求。下面就是这段代码: `

Private Sub Command1_Click()

url = "http://search.chinese.yahoo.com/search/gb?p=" Text1.Text

Inet1.protocol=icHTTP'指明控件协议类型

Inet1.Execute CStr(url),”GET /” '发出请求

While Inet1.StillExecuting

DoEvents

Wend

End Sub

  前面已经提到,以这种方法返回的信息包含了搜索的结果网页,同直接搜索的区别就是由于这样返回的就是源代码,暂时存储到一个临时变量中,这样一来,你既可以将返回的信息直接存储到一个文件中,另一种方法,这就是我们下面要提到的对代码的优化处理。

  什么叫对代码的优化处理呢?因为返回的结果中包含许多其他没有什么用处的修饰,比如表格、banner、menta等等信息,而这些信息并不是我们需要的,去掉这些信息,只保留对我们来说有用的结果,这就是优化。那么怎样优化呢?分析HTML语法您就会看到,许多信息都是包含在一些关键词之间。举个例子:对于插入的图片来说,都是用””来结尾,这样一来就清楚了,只要把代码中所有的满足以上条件的语句删掉,这样代码中就不会出现直接图片信息,我们参考以下的一段代码:

Public Function picFilter(downCode)'定义一个过滤图片信息的过程 Dim pStart As Long, pStop As Long

Dim pString1 As String, pString2 As String

pString1 = "

pString2 = ">" '分别将两个关键词定义

pStart = InStr(downCode, pString1)'找到第一个图片信息的起始位置

If pStart <> 0 Then '如果代码中有图片信息的话

pStop = InStr(pStart, downCode, pString2) 1 '从上面找的起始部位开始找到第一个用于结束图片信息的”>”

Do While pStart <> 0 '只要仍旧有图片信息

Mid(downCode, pStart, pStop - pStart) = Space(pStop - pStart) '将代码中的图片信息用空格代替,实现删除效果

pStart = InStr(pStop, downCode, pString1)'重复上面的过程,删除其他的图片信息

If pStart = 0 Then Exit Do '没有图片信息后,退出循环

pStop = InStr(pStart, downCode, pString2, 1) 1

Loop

picFilter=downCode '将处理过后的代码返回过程函数

End Function

  接下来只要使用

lastResult=picFilter lastResult

  就实现了对临时变量中搜索结果代码的图片信息去除工作,以此类推,很容易去掉诸如”

  上面所说的是一种方法,但我们知道HTML语法中关键词很多,如果都用以上的条件过滤的话,会使程序的效率大大降低,运行速度也会减慢很多。有没有更好的方法?有,如果是有心人的话,您就会发现不同的搜索引擎返回的结果有其独特的编排方式,我们仍旧以雅虎为例,你只要察看其返回的结果源代码就会发现:每一条信息的链接和主题部分排列都是以“
  • ”开始,以“”结束,而在“” 和接下来的第一个“<”之间的部分是该主题的简单描述,这样我们可以用下面的代码来将雅虎搜索结果代码中的有用信息提炼起来:

    Public Function yahooFilter(downCode)

    Dim sString1 As String, sString2 As String, sString3 As String

    Dim sStart As Long, sStop As Long

    Dim string1 As String, string2 As String, lastString as string

    sString1 = "

  • "

    sString2 = ""

    sString3 = "<"

    sStart = InStr(downCode, sString1)'取得第一条主题信息的起始位置

    Do While sStart <> 0

    sStop = InStr(sStart, downCode, sString2)

    string1 = Mid(downCode, sStart 4, sStop - sStart) '将第一条主题信息存放在string1变量中

    sStart = InStr(sStop, downCode, sString1) '从第一条主题信息的结束部位开始查找该主题的简单描述

    sStart = sStop 4

    sStop = InStr(sStart, downCode, sString3) '取得该主题描述部分的结束位置

    If sStop = sStart Then '判断只有主题而没有描述的信息

    string2 = ""

    ElseIf sStop <> sStart Then

    string2 = Mid(downCode, sStart, sStop - sStart - 1) '取出主题描述部分

    文章整理:西部数码--专业提供域名注册虚拟主机服务
    http://www.west263.com
    以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

  • 上一页 1 23 下一页
    [打印] [关闭]
    Google
    相关文章
    上一篇:用VB编写DirectX7.0游戏
    下一篇:Visual Basic中第三方控件使用之金蝉脱壳
    热点关注
    IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
    网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
    网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
    行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
    网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
    服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
    软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
    网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
    程序设计 Java技术 C/C++ VB delphi
    网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
    操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
    返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS