Html 在vba中按标记名搜索元素时未找到href属性

Html 在vba中按标记名搜索元素时未找到href属性,html,vba,excel,getelementbyid,getelementsbyclassname,Html,Vba,Excel,Getelementbyid,Getelementsbyclassname,使用VBA,我试图在Yahoo finance的HTML中查找给定股票的每周股价数据的href属性。我需要它来自动下载包含数据的csv文件。我已经完成了我的研究,并编写了以下代码,我相信应该可以找到URL。但是,代码继续以错误结束。我的代码中有一个小错误还是有一个更大的问题 我已按类名搜索超链接的父级,以缩小搜索范围,搜索成功。但是,当我在这个父级中搜索时,代码返回错误“远程服务器计算机不存在或不可用” 我是新的HTML刮,所以任何帮助将不胜感激。提前感谢您的帮助 Sub webpage

使用VBA,我试图在Yahoo finance的HTML中查找给定股票的每周股价数据的href属性。我需要它来自动下载包含数据的csv文件。我已经完成了我的研究,并编写了以下代码,我相信应该可以找到URL。但是,代码继续以错误结束。我的代码中有一个小错误还是有一个更大的问题

我已按类名搜索超链接的父级,以缩小搜索范围,搜索成功。但是,当我在这个父级中搜索时,代码返回错误“远程服务器计算机不存在或不可用”

我是新的HTML刮,所以任何帮助将不胜感激。提前感谢您的帮助

    Sub webpage()

Dim internet As Object
Dim internetdata As Object
Dim Find_Parent As Object
Dim Stock_Links As Object
Dim Link As Object
Dim URL As String

Set internet = CreateObject("InternetExplorer.Application")
internet.Visible = True

URL = "https://finance.yahoo.com/quote/GTE.AX/history?period1=1341266400&period2=1499032800&interval=1wk&filter=history&frequency=1wk"
internet.Navigate URL

Do While internet.ReadyState <> READYSTATE_COMPLETE
Loop

Set internetdata = internet.Document
Set Find_Parent = internetdata.getElementsByClassName("Fl(end) Pos(r) T(-6px)")
Set Stock_Links = Find_Parent.getElementsByTagName("a")

NextRow = 1

For Each Link In Stock_Links
    Sheet1.Range("A" & NextRow) = Link.getAttribute("href")
    NextRow = NextRow + 1
Next

MsgBox "Link Found"
子网页()
以互联网为对象
Dim internetdata作为对象
Dim查找父对象作为对象
将库存链接设置为对象
作为对象的Dim链接
将URL设置为字符串
设置internet=CreateObject(“InternetExplorer.Application”)
internet.Visible=True
URL=”https://finance.yahoo.com/quote/GTE.AX/history?period1=1341266400&period2=1499032800&interval=1wk&filter=history&frequency=1wk"
浏览网址
在internet.ReadyState ReadyState\u完成时执行此操作
环
设置internetdata=internet.Document
设置Find_Parent=internetdata.getElementsByClassName(“Fl(end)Pos(r)T(-6px)”)
Set Stock\u Links=Find\u Parent.getElementsByTagName(“a”)
NextRow=1
对于库存中的每个链接\u链接
Sheet1.Range(“A”&NextRow)=Link.getAttribute(“href”)
NextRow=NextRow+1
下一个
MsgBox“找到链接”

End Sub

第一个问题是,在使用后期绑定时,您使用的是InternetExplorer常量
READYSTATE\u COMPLETE
。因此,它将其视为一个空变量,而不是其值,即
4
。这意味着
Do While/Loop
将始终计算为
True
。所以你需要用它的值替换常量

Do While internet.ReadyState <> 4
Loop

第一个问题是,您使用的是InternetExplorer常量
READYSTATE\u COMPLETE
,而使用的是后期绑定。因此,它将其视为一个空变量,而不是其值,即
4
。这意味着
Do While/Loop
将始终计算为
True
。所以你需要用它的值替换常量

Do While internet.ReadyState <> 4
Loop