在 Visual Basic 中从 Web table 获取内容
Getting something from a web table in Visual Basic
我必须从网址中的 table 获取一些内容,但我不知道如何获取。我没有合适的页面来给你举个例子,但页面是这样的:
在 table 的初始列将有讲座的名称,每行将包含一个 "add" 带有动态编号 ID 的按钮,它会随机更改。(示例按钮 ID:添加-19872) 到目前为止,我可以找到讲座的名称,但无法找到他们的 "add" 按钮。我想要做的是用讲座名称的行位置定位这些特定按钮。我的意思是如果讲座的名称是 EE231 并且它在第 3 行,它应该找到按钮并给出它的 ID。
抱歉英语和表达不好。
祝大家有美好的一天...
此代码可能对您有所帮助,但我是根据您对所需代码的描述编写的:
Dim YourHTML As HtmlDocument = Some_WebBrowser.Document
For Each Your_Table As HtmlElement In YourHTML.GetElementsByTagName("table")
If Your_Table.Name = "Table Name" Then
For Each the_TR_Element As HtmlElement In Your_Table.GetElementsByTagName("tr")
If the_TR_Element.Name = "Your lecture's Name" Then
For Each the_TD_Element As HtmlElement In Your_Table.GetElementsByTagName("td")
If the_TD_Element.InnerHtml.Contains("Your Button Tag , Example : <Input , <Button") Then
'In Above "IF" Condition Make sure you use the tag as showen (<Tag) Not (<Tag> , <Tag/>)
For Each InSide_Button As HtmlElement In the_TD_Element.GetElementsByTagName("Button Tag like in Above IF")
MsgBox("Button ID is ==> " + InSide_Button.Id)
Next
End If
Next
End If
Next
End If
Next
并且我建议您使用 WebBrowser 完成此任务,因为 WebBrowser 在这种情况下很有用,如果您不知道如何使用它,这里有一个清晰的示例:
Dim Some_WebBrowser As New WebBrowser
AddHandler Some_WebBrowser.DocumentCompleted, AddressOf the_Document_is_Here
Some_WebBrowser.Navigate("WebPage URL")
然后您需要将下一个子项添加到您的 Class :
Private Sub the_Document_is_Here(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
End Sub
然后在 "the_Document_is_Here" Sub 的中间添加上面的第一个代码,然后你就完成了。
快乐编码^^
我必须从网址中的 table 获取一些内容,但我不知道如何获取。我没有合适的页面来给你举个例子,但页面是这样的:
在 table 的初始列将有讲座的名称,每行将包含一个 "add" 带有动态编号 ID 的按钮,它会随机更改。(示例按钮 ID:添加-19872) 到目前为止,我可以找到讲座的名称,但无法找到他们的 "add" 按钮。我想要做的是用讲座名称的行位置定位这些特定按钮。我的意思是如果讲座的名称是 EE231 并且它在第 3 行,它应该找到按钮并给出它的 ID。
抱歉英语和表达不好。 祝大家有美好的一天...
此代码可能对您有所帮助,但我是根据您对所需代码的描述编写的:
Dim YourHTML As HtmlDocument = Some_WebBrowser.Document
For Each Your_Table As HtmlElement In YourHTML.GetElementsByTagName("table")
If Your_Table.Name = "Table Name" Then
For Each the_TR_Element As HtmlElement In Your_Table.GetElementsByTagName("tr")
If the_TR_Element.Name = "Your lecture's Name" Then
For Each the_TD_Element As HtmlElement In Your_Table.GetElementsByTagName("td")
If the_TD_Element.InnerHtml.Contains("Your Button Tag , Example : <Input , <Button") Then
'In Above "IF" Condition Make sure you use the tag as showen (<Tag) Not (<Tag> , <Tag/>)
For Each InSide_Button As HtmlElement In the_TD_Element.GetElementsByTagName("Button Tag like in Above IF")
MsgBox("Button ID is ==> " + InSide_Button.Id)
Next
End If
Next
End If
Next
End If
Next
并且我建议您使用 WebBrowser 完成此任务,因为 WebBrowser 在这种情况下很有用,如果您不知道如何使用它,这里有一个清晰的示例:
Dim Some_WebBrowser As New WebBrowser
AddHandler Some_WebBrowser.DocumentCompleted, AddressOf the_Document_is_Here
Some_WebBrowser.Navigate("WebPage URL")
然后您需要将下一个子项添加到您的 Class :
Private Sub the_Document_is_Here(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
End Sub
然后在 "the_Document_is_Here" Sub 的中间添加上面的第一个代码,然后你就完成了。
快乐编码^^