我正在尝试将当前股价数据从 ASX 抓取到 Google 电子表格中。
我没有使用
=googlefinance("ASX.NEA","price")
来表示即时延迟价格,因为决议四舍五入了细价股票的价值。
我没有使用
=INDEX(googlefinance("ASX.NEA","price", today()-10, today()),2,2)
来获取历史价格,即使解析价格是准确的,也无法获取当前价格。
网址:
https://www.asx.com.au/asx/share-price-research/company/NEA
xpath(xPath 查找器):
/html/body/section[3]/article/div[1]/div/div/div[4]/div[1]/div[1]/company-summary/table/tbody/tr[1]/td[1]/span
方程:
=IMPORTXML(url, xpath)
结果:#N/A 错误导入内容为空
我尝试过的其他 xpath 是:
//table/tbody//span
//span[@ng-show="share.last_price"]
//span[@ng-show="share.last_price"]
当我查看页面源代码时,最新的股价是通过javascript加载的。
示例:股价为 0.910
使用 Apps 脚本 (javascript) 的替代解决方案
function AsxPrice(asx_stock) {
var url = "https://www.asx.com.au/asx/1/share/" + asx_stock +"/";
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
Logger.log(content);
var json = JSON.parse(content);
var last_price = json["last_price"];
return last_price;
}
这比
importXML()
或 ImportHTML()
效率更高,因为 HTML 很臃肿,上面的 url 是一个 jsonresult。
对于其他大型证券交易所(json 源可以在以下位置找到):
欧盟 美国
我在谷歌表格中使用上面提供的函数已经有一段时间了;函数AsxPrice
上周五晚上它下跌了。我已经玩过,该网址仍然有效,也就是说,如果您输入上面的网址和股票代码,数据就会按预期在网络浏览器中返回。如果我将内容输出到谷歌表格单元格,我会得到以下内容(仅输出的一小部分)。
"<html style="height:100%"><head><META NAME="ROBOTS" CONTENT="NOINDEX"
这是什么原因造成的。 ASX 已经阻止这一切了吗?