我已经在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
如何使用这些超链接从网页中解析标题?
你需要一个字符串,更具体地说是一个绝对的url,在GET
的XMLHttpRequest的Open
方法之后传递。相反,您正在尝试使用Workbook.FollowHyperlink,这是一个返回Workbook
对象的表达式。结果可能如下:
显示已缓存的文档(如果已下载)。否则,此方法将解析超链接,下载目标文档,并在相应的应用程序中显示该文档。
你正在尝试的是不可能的。
语法是:
If cel <> vbNullString Then
ThisWorkbook.FollowHyperlink cel.Value
您可能会注意到一个新的选项卡/浏览器窗口打开,以显示相应的Web文档(如果有效)。
我相信你的消息的特性是由于你在参数周围使用了括号。
您可以检索超链接的基础地址:
.Open "GET", cel.Hyperlinks(1).Address, False