在 WebBrowser 控件中使用 Bing 地图获取两地之间的英里数

Get miles between two places using Bing Maps in WebBrowser control

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

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

html代码

VB.NET代码

Dim miles As String = ""
Dim minutes As String = ""
Dim strHtml As String = ""
strHtml = wbMaps.DocumentText

For i As Integer = 0 To strHtml.Length - 1
    If InStr(strHtml(i).ToString, "descriptionDistance") Then
        Dim bracketLoc As Integer = 0
        Dim closeBracketLoc As Integer = 0
        bracketLoc = InStr(strHtml(i).ToString, ">")
        closeBracketLoc = InStr(strHtml(i).ToString, "<")
        miles = Mid(strHtml(i).ToString, bracketLoc + 1, closeBracketLoc - 1)
        haulMiles = Val(miles)
        tb_Miles.Text = haulMiles.ToString
    End If
Next

我明白了。我用过这个:

    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

我看到你已经回答了你自己的问题,但如果你感兴趣,我会添加另一个答案。如果您使用 HtmlAgilityPack,您可以通过 NuGet 添加到您的项目,而不是编写您自己的解析逻辑,您可以更轻松地完成工作:https://www.nuget.org/packages/HtmlAgilityPack/

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