通过Visual Basic复制超链接

时间:2012-12-05 02:40:31

标签: visual-studio-2010 hyperlink copy

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

1 个答案:

答案 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")