0

我试图弄清楚如何通过 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”,我想复制与之关联的超链接。一旦找到该文本,它将附加一个超链接,我不知道如何复制它。

4

1 回答 1

0

一种选择是使用 HtmlAgilityPack,可在此处获得。使用它,您可以使用 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")
于 2012-12-05T04:07:33.150 回答