读书人

在百度首页点击百度一下后怎么用webbr

发布时间: 2012-04-16 16:20:04 作者: rapoo

在百度首页点击百度一下后如何用webbrowser得到搜索结果数量?
比如我在百度首页搜索框中输入:使命召唤,然后点击搜索后,在网页下方出现:找到相关结果约28,500,000个。

我现在用webbrowser控件如何才能实现点击搜索后取这个搜索结果的数值。

我写的代码如下:

VB.NET code
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        WebBrowser1.Url = New Uri("http://www.baidu.com")        Do While WebBrowser1.ReadyState() <> WebBrowserReadyState.Complete            Application.DoEvents()        Loop        WebBrowser1.Document.All("kw").SetAttribute("value", "使命召唤")        WebBrowser1.Document.All("su").InvokeMember("click")        '下面不会写了,请教高手        '我想弹单击按钮后出这个数值,该怎么办用msgbox     End Sub



[解决办法]
HTML code
<span xmlns="http://www.w3.org/1999/xhtml" style="margin-left: 120px;" class="nums">找到相关结果约100,000,000个</span>
[解决办法]
你可以在窗体里加一个输入框用来接受查询关键字,然后直接用webbrowser打开百度相应的搜索页的地址,而非先打开百度,再操作webbrowser内的页面进行搜索。
http://www.baidu.com/s?wd=XXXXXXX 这个页面里,你要的内容是独一无二的,当有精确数量个结果时,它是“找到相关结果xxxx个”,当有非精确数量的结果时,它是“找到相关结果约xxxx个”,当无结果时,没有这些文字。所以你可以搜索“找到相关结果”,确定该段文字的起始位置,再从这个位置开始,找“个</”,这就是这段文字的结束位置。最后用substring或者mid函数处理一下就行啦
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(("http://www.baidu.com/s?wd=" & TextBox1.Text))
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim strori As String, pos1 As Integer, pos2 As Integer
strori = WebBrowser1.Document.Body.InnerHtml
pos1 = InStr(1, strori, "找到相关结果")
If pos1 Then
pos2 = InStr(pos1, strori, "个</")
Me.Text = Mid(strori, pos1, pos2 - pos1 + 1)
Else
Me.Text = "找到0个结果"
End If
End Sub

读书人网 >VB Dotnet

热点推荐