我尝试使用importxml从雅虎财经获取Walgreen的全职员工数量,如下所示:
=importxml("https://finance.yahoo.com/quote/WBA/profile", "/html/body/div[1]/div/div/div[1]/div/div[3]/div[1]/div/div[1]/div/div/section/div[1]/div/div/p[2]/span[6]/span")

我已经成功地使用该函数从雅虎财经获得了其他数据。示例(市值):
=mid(importxml("https://finance.yahoo.com/quote/WBA", "/html/body/div[1]/div/div/div[1]/div/div[3]/div[1]/div/div[1]/div/div/div/div[2]/div[2]/table/tbody/tr[1]/td[2]/span"),1,6)+0但随着员工的数量(顺便说一句,还有过去12个月(ttm)的收入)-我得到了这个错误。
如果没有我不熟悉的VBA,如何解决这个问题?
谢谢!
发布于 2021-11-09 12:53:16
这个站点是由javascript构建的客户端,而不是服务器端。因此,本机函数是不起作用的。
您必须提取源代码中的json并对其进行解析。
该对象在源代码中被命名为root.App.main。
例如,要获取员工
function fullTimeEmployees(url='https://finance.yahoo.com/quote/WBA/profile'){
var source = UrlFetchApp.fetch(url).getContentText()
var jsonString = source.match(/root.App.main = ([\s\S\w]+?);\n/)
if (!jsonString || jsonString.length == 1) return;
var data = JSON.parse(jsonString[1].trim())
Logger.log(data.context.dispatcher.stores.QuoteSummaryStore.assetProfile.fullTimeEmployees)
}https://stackoverflow.com/questions/69898102
复制相似问题