【问题标题】:Google Sheets - Import XMLGoogle 表格 - 导入 XML
【发布时间】:2021-12-03 04:50:59
【问题描述】:

我一直在互联网上寻找这个问题,我看到其他人解决了这个问题,但有些人仍然无法解决这个问题。我正在尝试使用IMPORTXML 函数。

=IMPORTXML("http://quotes.morningstar.com/fund/c-header?t=FID215", "//span[@vkey='NAV']")

[函数:IMPORTXML(url, xpath_query, locale)]

我得到 '找不到 url 的资源。'

我要做的就是为这个共同基金获取NAV

我尝试过的事情:

  1. 从 Morningstar 网站 -> 右键单击​​ -> 检查 -> 复制 XPath
  2. 更改 URL、小 URL 等。

【问题讨论】:

  • 我复制了你的确切公式,它工作正常。它返回 32.6。尝试使用其他浏览器或检查您的网络。
  • 我正在使用谷歌浏览器。我用 Edge 试过了。单元格仍然显示 ''N/A' Error Resource at url not found。我做错了什么?=IMPORTXML("quotes.morningstar.com/fund/c-header?t=FID215", "//span[@vkey='NAV']")
  • 我复制了公式,它的行为与@sniperfx20 相同。 N/A - 未找到 url 处的资源。页面上有一些 Javascript 错误,UrlFetchApp.fetch(url) 返回:异常:请求失败,quotes.morningstar.com 返回代码 404。截断的服务器响应:不再支持报告。

标签: xml google-sheets google-sheets-formula nav


【解决方案1】:

我的 Google Apps 脚本抓取 quotes.morningstar.com 本周停止工作。

一些测试表明,在 Google Apps 脚本中,这个 GET 请求失败:

const url = "https://quotes.morningstar.com/fund/c-header?t=LU0690375182"
const options = { muteHttpExceptions: true};
let fetch = UrlFetchApp.fetch(url, options);
Logger.log('result: ' + fetch.getContentText());
Logger.log('code: ' + fetch.getResponseCode());

产生的错误:

result: The report is no longer supported
code: 404

在我的浏览器中(或通过 curl)完全相同的 GET 请求仍然可以正常工作。

我能想到的唯一区别是请求的原始 IP 地址。

GAS 请求将来自 Google 用于托管 GAS 的一组有限 IP 地址。可能是 Morningstar 的某个人将他们添加到了黑名单?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多