无法使用importXML获取NAV值

时间:2020-10-03 23:37:20

标签: google-sheets-formula

我想获得一些帮助,可以使用importxml / xpath从此链接获取NAV数据。 https://www.vanguardinvestments.com.au/retail/ret/investments/product.html#/fundDetail/wholesale/portId=8125/?prices ...因此在这种情况下,NAV数据为$ 1.3446。我想使用importxml / xpath获得此值。

该怎么做?我尝试了一些公式,但是..无法从网站上获取详细信息。

=(IMPORTXML("https://www.vanguardinvestments.com.au/retail/ret/investments/product.html#/fundDetail/wholesale/portId=8125/?prices","//td[@class='ng-binding']"))

2 个答案:

答案 0 :(得分:0)

Ciao

我认为,获取价值的问题在于,如果您检查网页源代码[例如在Chrome right click -> View Page Source中,该数字不能在那里直接使用

this other answer中所述:

IMPORTXML无法检索由脚本填充的数据,因此 使用该公式从该表中检索数据是不可能的 做

这就是为什么如果尝试使用其元素xpath运行它的原因:

=IMPORTXML(A1,"//*[@id='tab-container']/div[2]/detail-prices-full/div/table[2]/tbody/tr[1]/td[2]")

您得到的内容为空

可以通过建议here进行测试,打开浏览器的开发人员工具并禁用JavaScript来确认通过脚本提供元素的事实。 in Chrome]

在不关闭开发人员工具的情况下,如果您在这种情况下重新加载网站,则会看到以下内容:

Website with JS disabled

因此您将无法通过IMPORTXML

来获取它

祝你有美好的一天,
安东尼诺

答案 1 :(得分:0)

ImportXML无法按照Antonino的说明进行。 但是您仍然可以在Google表格中获取此信息!

两种策略:

  1. 使用ImportJSON从页面在后台调用的API返回数据

  2. 使用ImportFromWeb代替ImportXML,它可以抓取Javascript呈现的内容

-

1。使用API​​

这是最好的解决方案,因为数据已经结构化并且 易于操作

=IMPORTJSON("https://api.vanguard.com/rs/gre/gra/1.7.0/datasets/auw-retail-prices-data-mf.jsonp?vars=portId:8125&path=[portId=8125][0]")

enter image description here

  • 如果要过滤表,只需从第一列中选​​择一个键并将其作为第二个参数添加到函数中

2。抓取数据

IMPORTFROMWEB是IMPORTXML的改进版本,它接受加载Javascript的页面。

=IMPORTFROMWEB(your_url, your_xpath, "jsRendering")