如何在源代码中单击超文本?

时间:2018-11-05 21:47:38

标签: excel vba excel-vba web-scraping

我已经开始编写这些命令行,但是似乎可以正常工作...

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = Range("Name").Row And Target.Column = Range("Name").Column Then

        Dim HTMLdoc As HTMLDocument
        Dim downloadLink As HTMLAnchorElement
        Dim i As Long
        Dim ie As New InternetExplorer

        With ie
            .Visible = True
            .navigate "http://www.XXXXXXXXXX" & Range("Name").Value

            While .Busy Or .readyState <> 4
            DoEvents
            Wend
            Set HTMLdoc = .document
        End With

            Dim Elmt As IHTMLElement
            Dim Elm_Children As IHTMLElementCollection

            Elm = HTMLDocument.getElementById("tableList2")
            Elm_Children = Elm.Children
            ElmChildren.FirstChild.Click

        ie.Quit

    End If

End Sub

源代码如下:

enter image description here

主要思想是打开一个搜索页面,并在Excel工作表中列出一个搜索请求,然后在新页面中单击第一个匹配项和最终的剪贴簿信息:将这些信息粘贴到相同的工作表中,但不同的行。 / p>

非常感谢您的帮助:-)

1 个答案:

答案 0 :(得分:0)

您可以尝试

HTMLDoc.querySelector("#tableList2 .lstw4 a[onclick]").Click

甚至

HTMLDoc.querySelector("#tableList2 [onclick*='openMainWindow']").Click

这些使用# id选择器获取表,第一个后代组合器中的.类选择器获取表中具有类lstw4的元素,以上两个都使用属性选择器以onclick属性为目标。第一个简单地通过寻找具有a属性和父类onclick的第一个孩子lstw4标记,第二个简单地通过onclick,其值包含openMainWindow