我试图弄清楚如何通过visual basic复制超链接。
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Search.Tick
If Me.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
PageText = WebBrowser1.Document.Body.InnerText
If InStr(PageText, SearchText) > 0 Then
Search.Enabled = False
isThere()
Else
WebBrowser1.Refresh()
End If
End If
End Sub
所以我得到了那个,一旦在网页上找到“searchText”,我想复制与之关联的超链接。一旦找到该文本,它将附加一个超链接,我不知道如何复制它。
答案 0 :(得分:0)
一种选择是使用HtmlAgilityPack,可用here。 使用此方法,您可以使用XPath查询根据其文本获取超链接。
此示例按名称获取StackOverflow主页顶部“Ask Question”超链接的URL:
Dim htmlDoc As New HtmlAgilityPack.HtmlDocument()
htmlDoc.LoadHtml(WebBrowser1.Document.Body.OuterHtml)
Dim node As HtmlAgilityPack.HtmlNode = htmlDoc.DocumentNode.SelectSingleNode("//a[text()=""Ask Question""]")
Dim attr As HtmlAgilityPack.HtmlAttribute = node.Attributes("href")
Dim url As String = attr.Value
另外,除此之外,HtmlAgilityPack还可以直接从URL加载文档,这意味着您不必使用WebBrowser控件,除非您需要。
Dim web As New HtmlAgilityPack.HtmlWeb()
Dim htmlDoc As HtmlAgilityPack.HtmlDocument = web.Load("http://www.stackoverflow.com")