我正在尝试从网站解析一些数据,以从他们的表中获取特定项目。我知道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元素,但我不知道如何(如果可能)然后调查内部元素。如果没有,您认为最佳路线是什么?该网站并未真正标记任何表格。我正在寻找的基本上看起来像:
<td><b><font size="2"><a href="/movie/?id=movieTitle.htm">The Movie</a></font></b></td>
我想退出电影&#34;文本并将其添加到文本文件中。
答案 0 :(得分:0)
使用您拥有的InnerHtml
对象(HtmlElement
)的curElement
属性,如下所示:
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 Property的文档以获取更多信息。
更新:
要获取<tr>
HTML元素的第二个孩子,请使用FirstChild
然后NextSibling
的组合,如下所示:
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