在使用来自不同单元格的超链接时获取错误

问题描述 投票:1回答:1

我已经在vba中编写了一个脚本来利用hyperlinks中的Range(A1")Range("A2"),以便从每个网页中抓取title。但是,当我执行下面的宏时,我得到一个错误Expected Function or Variable指向.FollowHyperlink

Sub getTitle()
    Dim Http As New XMLHTTP60, Html As New HTMLDocument
    Dim cel As Range

    For Each cel In Sheets("summary").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If cel <> vbNullString Then
            With Http
                .Open "GET", ThisWorkbook.FollowHyperlink(cel), False
                .send
                Html.body.innerHTML = .responseText
            End With
            Debug.Print Html.queryselector("p.ueberschrift").innertext
        End If
    Next cel
End Sub

如何使用这些超链接从网页中解析标题?

下图显示了单元格中超链接的外观:enter image description here

vba web-scraping hyperlink
1个回答
1
投票

你需要一个字符串,更具体地说是一个绝对的url,在GET的XMLHttpRequest的Open方法之后传递。相反,您正在尝试使用Workbook.FollowHyperlink,这是一个返回Workbook对象的表达式。结果可能如下:

显示已缓存的文档(如果已下载)。否则,此方法将解析超链接,下载目标文档,并在相应的应用程序中显示该文档。

你正在尝试的是不可能的。

语法是:

If cel <> vbNullString Then
            ThisWorkbook.FollowHyperlink cel.Value

您可能会注意到一个新的选项卡/浏览器窗口打开,以显示相应的Web文档(如果有效)。

我相信你的消息的特性是由于你在参数周围使用了括号。

您可以检索超链接的基础地址:

.Open "GET", cel.Hyperlinks(1).Address, False
© www.soinside.com 2019 - 2024. All rights reserved.