2

我正在尝试从网站解析一些数据以从他们的表格中获取特定项目。我知道任何将 bgcolor 属性设置为 #ffffff 或 #f4f4ff 的标签都是我想要开始的地方,而我的实际数据位于其中的第二个。

目前我有:

Private Sub runForm()


    Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("TR")
    For Each curElement As HtmlElement In theElementCollection
        Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
        MsgBox(controlValue)
        If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then

        End If
    Next
End Sub

这段代码得到了我需要的 TR 元素,但我不知道如何(如果可能的话)然后调查内部元素。如果不是,您认为最好的路线是什么?该网站并没有真正标记他们的任何表格。'si 正在寻找的基本上是这样的:

<td><b><font size="2"><a href="/movie/?id=movieTitle.htm">The Movie</a></font></b></td>

我想提取“电影”文本并将其添加到文本文件中。

4

1 回答 1

0

使用您拥有的对象 ( ) 的InnerHtml属性,如下所示:HtmlElementcurElement

For Each curElement As HtmlElement In theElementCollection
    Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
    MsgBox(controlValue)
    If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then
        Dim elementValue As String = curElement.InnerHtml
    End If
Next

阅读HtmlElement.InnerHtml 属性的文档以获取更多信息。

更新:

要获取 HTML 元素的第二个子<tr>元素,请使用 and 的组合FirstChildNextSibling如下所示:

For Each curElement As HtmlElement In theElementCollection
    Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
    MsgBox(controlValue)
    If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then
        Dim firstChildElement = curElement.FirstChild
        Dim secondChildElement = firstChildElement.NextSibling

        ' secondChildElement should be the second <td>, now get the value of the inner HTML
        Dim elementValue As String = secondChildElement.InnerHtml
    End If
Next
于 2013-08-23T15:29:11.717 回答