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」がWebページで見つかったら、それに関連付けられたハイパーリンクをコピーしたいと思います. そのテキストが見つかると、ハイパーリンクが添付されますが、コピーする方法がわかりません。

4

1 に答える 1

0

1 つのオプションは、ここから入手できる HtmlAgilityPack を利用することです。これを使用すると、XPath クエリを使用して、テキストに基づいてハイパーリンクを取得できます。

この例では、StackOverflow ホームページの上部にある「質問する」ハイパーリンクの 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 に答える