无法使用 ImportXML xpath 查询提取嵌套数据 - google 张

Unable to extracted nested data with ImportXML xpath query - google sheets

亲爱的internaut们大家好!

我想从以下位置提取国家/地区分布:https://www.etf.com/URTH - “URTH Top 10 Countries”页面中部。此后我打算扩展到其他 ETF: 到目前为止,我唯一能想象的是丑陋的:

  1. 正在搜索标签名称。丑陋,因为它需要搜索世界上的每个国家,才能找到实际存在的十个国家。

=IF(NOT(ISBLANK($A)),(importxml(concatenate("https://www.etf.com/",$A), "(//label[normalize-space()='United States']//following::span[@id=''][1])")),"")

  1. 提取整个 HTML 然后开始一些字符串操作。丑陋,因为似乎天生不稳定。

=IF(NOT(ISBLANK($A)),index(IMPORTXML(concatenate("https://www.etf.com/",$A,"#overview"), "html"),1,2))

我尝试过的其他事情:复制 xpath/完整 xpath(禁用和不禁用 javascript)。以及尝试创建我自己的 xpath(已经几个小时了 :D)

我看到的另一个障碍是,关闭 javascript 后,ID 不多,而且附近还有其他具有相同 @class 结构的列表。

想要的结果: 美国 68.34% 日本 6.63% 英国 4.29% 等 每个国家在一个或两个单元格中(国家名称/百分比)。

非常欢迎了解您如何继续构建功能查询。如果有完全不同的方法,我洗耳恭听!

注:A1=URTH

使用:

=ARRAYFORMULA(TRIM(QUERY(IMPORTXML("https://www.etf.com/"&A1, 
 "//div[@class='rowText col-md-12 col-sm-12 col-xs-12']"), 
 "limit 10", 0)))


如果您想使用这些数字:

=INDEX(QUERY(IMPORTXML("https://www.etf.com/"&A1, 
 "//div[@class='rowText col-md-12 col-sm-12 col-xs-12']"), 
 "limit 10", 0))