VB从html元素中获取文本

时间:2013-07-29 21:30:57

标签: vb.net

我需要使用visual basic在网页上的两个span标签之间获取文本。

<span>Some Text</span>

我知道必须有办法,但我似乎无法找到它。

这是我不拥有的网站。

5 个答案:

答案 0 :(得分:1)

为您的范围提供ID和runat="server"属性,例如

<span id="xMySpan" runat="server">Some Text</span>

然后,您将能够在服务器端代码中检索它,例如

Dim sVar As String = xMySpan.InnerHtml

答案 1 :(得分:0)

如何为跨度分配ID?如果你这样做,那么这就有效:

TextBox1.Text = _
 WebBrowser1.Document.GetElementById("spanID").GetAttribute("innerText")

使用以下格式:

<span id="spanID">...</span>

编辑:按内容过滤:

$("span").filter(function(){
    return $(this).html() == "a";
})

可以使用:

<span>a</span>

答案 2 :(得分:0)

您是从整个HTML文档中提取此内容还是仅从上面引用的文本中提取此内容?

如果它只是上面的(你已经过滤掉了其他的HTML)那么你可以使用LEFT()和RIGHT()的组合来剪掉两端,或者使用REPLACE()来摆脱它两个标签。

答案 3 :(得分:0)

我制作了这个剧本,希望它会有所帮助

我有:

  • 获取youtube网址的文本框[urlVideo]

  • 按钮加载页面[btn_loadViews]

  • webBrowser控件[webBrowser1]

  • 以及显示文字[lb_views]

  • 的标签

我没有验证任何内容,所以这只是我如何从网站获取文本的一个示例。 如果还有另一种方法,我也想知道。 =)

Private Sub btn_loadViews_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_loadViews.Click

    WebBrowser1.Navigate(urlVideo.Text)
    WaitForPageLoad()

    getViews()


End Sub

Private Sub getViews()
    Try
        Dim version = FileVersionInfo.GetVersionInfo("c:\windows\system32\ieframe.dll")
        'Depending on the navigator version, google's server sends diffetent pages, so
        'Here Detect ie version
        If version.ProductVersion < "8" Then
            lb_views.Text = WebBrowser1.Document.GetElementById("vc").FirstChild.InnerText
        Else
            lb_views.Text = WebBrowser1.Document.GetElementById("watch7-views-info").FirstChild.InnerText
        End If

    Catch ex As Exception
        MsgBox(ex.ToString)
        Application.Exit()
    End Try

End Sub


Private Property pageready As Boolean = False

Private Sub WaitForPageLoad()
    AddHandler WebBrowser1.DocumentCompleted, New     WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
    While Not pageready
        Application.DoEvents()
    End While
    pageready = False
End Sub

Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
    If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
        pageready = True
        RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
    End If
End Sub

答案 4 :(得分:-2)

Dim WithEvents hDoc As HTMLDocument
Set hDoc = WebBrowser1.Document
Dim strValue As String
strValue = hDoc.getElementsByName("so").Item(0).Value