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

如何提取外层span标签中内部span之前的独立文本?

如何仅提取父span元素内子span之前的文本

现有如下HTML结构:

<span class="ui-cfs-sn-l" xpath="1">
    ABC
    <span class="ui-cfs-txt">°⌃</span>
</span>

使用以下Selenium代码提取文本时:

element = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-sn-l']")
result = element.text

返回结果为ABC°⌃,但需求是仅获取子span之前的文本,得到ABC。

以下是几种可行的解决方法:

  • 方法一:通过XPath定位目标文本节点
    直接用XPath选中父元素下的第一个文本节点,再清理多余空白:

    text_node = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-sn-l']/text()[1]")
    result = text_node.text.strip()
    
  • 方法二:执行JavaScript脚本提取
    利用JS操作DOM,直接获取父元素的第一个子文本节点内容:

    parent_element = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-sn-l']")
    result = driver.execute_script("return arguments[0].childNodes[0].textContent.trim();", parent_element)
    
  • 方法三:拆分完整文本
    若前两种方法受限,可先获取完整文本,再移除子span的内容:

    parent_element = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-sn-l']")
    full_text = parent_element.text
    sub_text = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-txt']").text
    result = full_text.replace(sub_text, "").strip()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:21:00