扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:闫辉 来源:yesky 2007年10月15日
关键字:
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 |
就实现了对临时变量中搜索结果代码的图片信息去除工作,以此类推,很容易去掉诸如”
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。