【问题标题】:Scrape the current share price data from the ASX从 ASX 刮取当前股价数据
【发布时间】:2018-06-01 04:58:37
【问题描述】:

我正在尝试将当前股价数据从 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 是:

  • xpath://table/tbody//span
  • xpath://span[@ng-show="share.last_price"]
  • xpath://span[@ng-show="share.last_price"]

当我查看页面源时,最新的股价是通过 javascript 加载的。

示例:股价为 0.910

【问题讨论】:

    标签: xpath web-scraping google-sheets google-sheets-importxml


    【解决方案1】:

    使用应用脚本 (javascript) 的替代解决方案

    <code>
        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;
        }
    </code>
    

    这比 importXML() 或 ImportHTML() 因为 HTML 臃肿,效率更高,上面的 url 是一个 jsonresult。

    对于其他大型证券交易所(json源可以在):

    欧盟 美国

    【讨论】:

    • 方便的解决方法,因为对于美国注册的基金(如 VTS/VEU),GoogleFinance 调用似乎已中断(自 2020 年 1 月 21 日星期二起)
    • 在一种情况下,为了避免“位置 0 处 JSON 中的意外令牌
    • 谁能给我指点 ASX API 的文档。还有更多内容,例如公司信息、股息、价格历史等
    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多