You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google Sheets的IMPORTXML函数从dividendhistory.org精准提取股票收益率(Yield)值

解决Google Sheets IMPORTXML提取收益率的问题

我来帮你搞定这个提取收益率的难题!针对你遇到的两个问题,我们可以通过优化XPATH表达式和结合Google Sheets函数来完美解决:

问题1:收益率所在段落位置不固定

原来的XPATH用了固定层级定位(/html/body/div/div[2]/div[2]/p[4]),这很容易因为页面结构变化失效。我们可以通过文本内容匹配来精准定位包含收益率的元素,不管它在哪个位置。

问题2:提取仅数值而非带“Yield:”的文本

我们可以直接在XPATH里截取数值,或者用Google Sheets的正则函数提取,两种方法都很实用:

方法1:XPATH内置函数直接提取数值

使用substring-after函数,定位到包含“Yield:”的段落,然后截取冒号后面的数值部分:

=IMPORTXML("https://dividendhistory.org/payout/TSX/"&F7, "substring-after(//p[contains(text(), 'Yield:')], 'Yield: ')")
  • //p[contains(text(), 'Yield:')]:匹配所有文本包含“Yield:”的<p>标签,彻底解决位置不固定的问题
  • substring-after(..., 'Yield: '):截取“Yield: ”(注意后面有空格)之后的内容,直接得到纯收益率数值(比如“5.23%”)

方法2:结合REGEXEXTRACT提取数值

如果XPATH的substring-after在某些场景下有兼容问题,可以先用IMPORTXML拿到完整文本,再用正则提取数值:

=REGEXEXTRACT(IMPORTXML("https://dividendhistory.org/payout/TSX/"&F7, "//p[contains(text(), 'Yield:')]"), "\d+\.\d+%")
  • \d+\.\d+%:正则表达式匹配“数字+小数点+数字+百分号”的格式,精准提取收益率数值

额外优化建议

如果页面上有多个包含“Yield:”的元素,可以进一步缩小定位范围,比如找到收益率所在的父容器(需要你查看目标页面源码确认具体class或属性),修改XPATH为:

//div[contains(@class, 'payout-details')]//p[contains(text(), 'Yield:')]

(这里的payout-details是示例class,你需要替换成页面实际存在的容器属性)

内容的提问来源于stack exchange,提问作者BadDogTitan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 17:52:53