【发布时间】:2020-08-14 16:25:54
【问题描述】:
我有一个从这个 url 抓取表格的代码
https://www.reuters.com/companies/AAPL.OQ/financials/income-statement-annual
代码没问题,除了一点之外没有任何问题。代码获取表格但没有获取表头
With http
.Open "Get", sURL, False
.send
html.body.innerHTML = .responseText
End With
Set tbl = html.getElementsByTagName("Table")(0)
For Each rw In tbl.Rows
r = r + 1: c = 1
For Each cl In rw.Cells
ws.Cells(r, c).Value = cl.innerText
c = c + 1
Next cl
Next rw
在检查 URL 时,我发现 API URL 支持
https://www.reuters.com/companies/api/getFetchCompanyFinancials/AAPL.OQ
如何从 JSON 响应中提取“收入”所需的“年度”数据?
我试图参考我想要的部分,但出错了
Const strUrl As String = "https://www.reuters.com/companies/api/getFetchCompanyFinancials/AAPL.OQ"
Sub Test()
Dim a, json As Object, colData As Collection, sFile As String, i As Long
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
.Open "GET", strUrl
.send
Set json = JSONConverter.ParseJson(.responseText)
End With
Set colData = json("market_data")("financial_statements")
Stop
End Sub
【问题讨论】:
-
错误是什么?有许多收入线 - 您需要哪些?
-
它是嵌套字典,路径为 json►market_data►financial_statements►income►annual
-
事实上,我迷失了那些嵌套字典。
-
您遇到了什么错误?您上面的代码看起来不错,除了您是否需要用户代理以及是否从标头刷新并且您缺少来自 .Open 的 FALSE 参数
-
这也是我脑子里做的恐怕pastebin.com/JSVDViNu
标签: excel vba web-scraping xmlhttprequest