Google 表格 - 在特定页面上导入 XML 时遇到问题

Google Sheets - Trouble importing XML on particular page

正在尝试使用 Google 表格中的 ImportXML 来检索特定的文本片段,但在搜索答案后遇到了问题。

希望这里有人可以帮助解决问题。

页面是:https://www.afi.com.au 我要导入的文本位于粉红色框中:

这里是我处理代码的地方,我试图检索 XPath,但它不喜欢我所拥有的,我相信这里有人会立即发现问题...

=IMPORTXML("http://www.afi.com.au","//body[@class='entry-homepage type-homepage']/div[@class='page page-home']/div[@class='page__item']/div[@class='js-evo7-component']/div[@class='hero']/div[@class='hero__inner-root rellax']/div[@class='hero__inner']/div[@class='container']/div[@class='grid']/div[@class='grid__item one-third palm-one-whole']/div[@class='hero__share-price']/div[@class='price-number']//text()")

那是不可能的。您尝试抓取的信息由 JavaScript 控制,并且 Google Sheets 根本无法读取 JS。您可以通过在给定网站上禁用 JS 来简单地测试它:

这个解决方法怎么样?在此解决方法中,使用 xpath 检索数据,并使用正则表达式检索值。似乎在检索页面时更新了检索到的数据。所以我用了这个方法。修改后的公式如下。请将此视为几个答案之一。

示例公式:

在此示例公式中,http://www.afi.com.au 被放入单元格 "A1"。

=REGEXEXTRACT(IMPORTXML(A1,"//div[@class='js-evo7-component']/@data-config"),"netAssetBacking"":{""price"":""([\d.]+)")
  1. 使用 //div[@class='js-evo7-component']/@data-configIMPORTXML() 的 xpath 检索数据。
  2. 使用 netAssetBacking"":{""price"":""([\d.]+)REGEXEXTRACT() 的正则表达式检索值。

结果:

参考文献: