Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 通过Visual Basic复制超链接_Visual Studio 2010_Hyperlink_Copy - Fatal编程技术网

Visual studio 2010 通过Visual Basic复制超链接

Visual studio 2010 通过Visual Basic复制超链接,visual-studio-2010,hyperlink,copy,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

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

一个选项是使用可用的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")

我有这样的循环,直到找到文本。“PageText”变量是页面文本,“SearchText”变量是用户输入的内容,作为在网页上搜索的内容。好的,我从来没有下载过Visual Basic的额外软件包,所以当我下载时,我应该将文件复制到何处。下载后,您必须为正在使用的框架版本选择DLL。将DLL从该文件夹复制到项目文件夹中。然后,在VisualStudio中添加该文件作为引用。好的,当我测试该文件时,我在这一行中得到了一个错误。它说“对象引用未设置为对象的实例”。将属性设置为HtmlAgilityPack.HtmlAttribute=node.Attributes(“href”)对不起,我对HTML了解不多。虽然我编辑了一行,但因为它并不总是一个字符串。Dim节点为HtmlAgilityPack.HtmlNode=htmlDoc.DocumentNode.SelectSingleNode(“//a[text()=”+SearchText+”])您需要包含引号,因此它需要看起来更像这样:Dim节点为HtmlAgilityPack.HtmlNode=htmlDoc.DocumentNode.SelectSingleNode(//a[text()=”&SearchText&“])