谷歌表格使用IMPORTXML抓取每股账面价值财务数据失败求助
谷歌表格IMPORTXML抓取每股账面价值失败的解决方法
原XPath失效原因
- 从浏览器开发者工具直接复制的XPath包含浏览器自动生成的
tbody标签,该标签不存在于目标页面的静态源码中,直接使用会无法匹配节点 - 硬编码多层级、固定行号的路径容错率极低,页面结构只要发生微小调整就会匹配失败
可用调整方案
直接使用以下公式即可抓取到对应数据:
=IMPORTXML("https://stockanalysis.com/stocks/bby/statistics/", "//td[contains(text(),'Book Value Per Share')]/following-sibling::td[1]")
方案说明
- 基于字段文本特征定位,只要页面中「Book Value Per Share」的字段名不变,就能稳定匹配到对应行,不受页面层级调整影响
following-sibling::td[1]直接取字段单元格右侧相邻的数值单元格,不需要手动计算行号、列号位置- 如果遇到偶发的
#N/A报错,可以给URL添加随机参数绕过谷歌表格的缓存,调整后公式如下:
=IMPORTXML("https://stockanalysis.com/stocks/bby/statistics/?t="&RANDBETWEEN(1,1000), "//td[contains(text(),'Book Value Per Share')]/following-sibling::td[1]")
内容的提问来源于stack exchange,提问作者jonesmf
相关产品推荐
相关产品推荐

