Vb.net 在WebBrowser控件中使用Bing地图获取两地之间的里程

Vb.net 在WebBrowser控件中使用Bing地图获取两地之间的里程,vb.net,webbrowser-control,Vb.net,Webbrowser Control,在确定了两个地方之间的方向后,是否可以从HTML代码中提取里程?在得到指示后,我可以在IE中看到页面源代码中的英里数,我正试图使用下面的公式提取它显示的英里数。这可能很容易,但我被难倒了 多一点信息。我能够通过WebBrowser控制位置,以获取往返方向,并像在IE中一样显示方向。我想在文本框中获取里程 html代码 VB.NET代码 Dim miles As String=“” 将分钟设置为字符串=“” Dim strHtml As String=“” strHtml=wbMaps.Docu

在确定了两个地方之间的方向后,是否可以从HTML代码中提取里程?在得到指示后,我可以在IE中看到页面源代码中的英里数,我正试图使用下面的公式提取它显示的英里数。这可能很容易,但我被难倒了

多一点信息。我能够通过WebBrowser控制位置,以获取往返方向,并像在IE中一样显示方向。我想在文本框中获取里程

html代码

VB.NET代码

Dim miles As String=“”
将分钟设置为字符串=“”
Dim strHtml As String=“”
strHtml=wbMaps.DocumentText
对于i,作为整数=0到strHtml.Length-1
如果仪表(strHtml(i).ToString,“描述距离”),则
尺寸括号LOC为整数=0
Dim closeBracketLoc为整数=0
括号LOC=InStr(strHtml(i).ToString,“>”)

closeBracketLoc=InStr(strHtml(i).ToString,“我找到了它。我用了这个:

    Dim miles As String = ""
    Dim minutes As String = ""
    Dim strHtml As StringBuilder

    strHtml = New StringBuilder

    strHtml.Append(wbMaps.DocumentText)

    Dim lines() As String = Split(strHtml.ToString, vbCrLf)


    For Each line As String In lines

        If InStr(line, "descriptionDistance") Then

            Dim bracketLoc As Integer = 0
            Dim closeBracketLoc As Integer = 0
            bracketLoc = InStr(line, ">")
            closeBracketLoc = InStr(line, "<")
            miles = Mid(line, bracketLoc + 1, closeBracketLoc - 1)
            haulMiles = Val(miles)
            tb_Miles.Text = miles

        End If
    Next
Dim miles As String=“”
将分钟设置为字符串=“”
作为StringBuilder的Dim strHtml
strHtml=新的StringBuilder
strHtml.Append(wbmap.DocumentText)
尺寸线()作为字符串=拆分(strHtml.ToString,vbCrLf)
将每一行作为行中的字符串
如果仪表(第行,“描述距离”),则
尺寸括号LOC为整数=0
Dim closeBracketLoc为整数=0
括号LOC=仪表(第“>”行)

closeBracketLoc=InStr(line,“我知道您已经回答了自己的问题,但如果您感兴趣,我将添加另一个答案。如果您使用HtmlAgilityPack,您可以通过NuGet将其添加到项目中,而不是编写自己的解析逻辑,那么您可以更轻松地获得里程数:


非常感谢您提供的信息。我今晚会设置它并使用它,以防我想要获得更复杂的信息。按照我上面描述的方式进行操作-我可能不会幸运地在两个不同的关键字之间提取内容。
    Dim miles As String = ""
    Dim minutes As String = ""
    Dim strHtml As StringBuilder

    strHtml = New StringBuilder

    strHtml.Append(wbMaps.DocumentText)

    Dim lines() As String = Split(strHtml.ToString, vbCrLf)


    For Each line As String In lines

        If InStr(line, "descriptionDistance") Then

            Dim bracketLoc As Integer = 0
            Dim closeBracketLoc As Integer = 0
            bracketLoc = InStr(line, ">")
            closeBracketLoc = InStr(line, "<")
            miles = Mid(line, bracketLoc + 1, closeBracketLoc - 1)
            haulMiles = Val(miles)
            tb_Miles.Text = miles

        End If
    Next
        Dim htmlDoc As New HtmlAgilityPack.HtmlDocument
        htmlDoc.LoadHtml(wbMaps.Document.Body.InnerHtml)
        miles = htmlDoc.DocumentNode.SelectSingleNode("//td[@data-tag='descriptionDistance']").InnerHtml