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

Selenium Python如何查找指定元素内的所有span标签并合并提取文本

Selenium 提取父元素下所有span文本的实现方案

实现逻辑

从已定位的父元素TargetElem出发,通过相对路径匹配所有后代span元素,提取文本后处理空白、合并为字符串即可。

注意事项

原HTML结构中存在嵌套span(包裹TEXT 2的外层span无独立文本,文本继承自内层span),直接遍历所有span会重复采集TEXT 2,可根据需求选择对应实现:

方案1:遍历所有span(包含嵌套,保留所有span的文本内容)

from selenium.webdriver.common.by import By

# 匹配父元素下所有后代span
all_spans = TargetElem.find_elements(By.XPATH, ".//span")
# 提取文本、去除首尾空白、过滤空内容
text_parts = [span.text.strip() for span in all_spans if span.text.strip()]
# 可自定义分隔符(空字符串、空格、换行等)合并
merged_text = " ".join(text_parts)
# 输出结果:TEXT 1 TEXT 2 TEXT 2 TEXT 3

方案2:仅遍历无嵌套子span的底层span(无重复文本)

from selenium.webdriver.common.by import By

# 仅匹配没有子span的底层span标签
leaf_spans = TargetElem.find_elements(By.XPATH, ".//span[not(.//span)]")
text_parts = [span.text.strip() for span in leaf_spans]
merged_text = " ".join(text_parts)
# 输出结果:TEXT 1 TEXT 2 TEXT 3

方案3:简化实现(无需遍历span,直接提取父元素下所有可见文本)

如果不需要严格校验span标签,仅要获取该区域所有可见文本,可直接调用父元素的text属性:

# 自动合并所有可见文本,分割后再用空格拼接去除多余空白
merged_text = " ".join(TargetElem.text.split())
# 输出结果:TEXT 1 TEXT 2 TEXT 3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:15:03