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

如何用Python Selenium从指定HTML中提取<a>标签外的目标字符串?

提取目标文本的解决方法

目标内容是<td class="subject">标签下位于<a>和<br>之后的独立文本节点,以下是几种可行的实现方式:

方式一:通过父节点文本截取

先定位到包含所有内容的<td>元素,提取完整文本后拆分出目标部分:

def is_it_available():
    # 定位到目标td元素
    td_element = driver.find_element(By.XPATH, '//td[@class="subject"]')
    # 获取td内的全部文本内容
    full_content = td_element.text
    # 按→符号拆分,取后半段并去除首尾空格
    target_text = full_content.split('→')[-1].strip()
    print(target_text)

方式二:XPATH直接定位文本节点

利用XPATH的节点选择语法,直接选中<br>之后的文本节点:

def is_it_available():
    # 直接定位到<br>后的文本节点
    text_node = driver.find_element(By.XPATH, '//td[@class="subject"]/br/following-sibling::text()')
    # 获取文本节点的原始内容(包含&nbsp;对应的空格)
    target_text = text_node.get_attribute('textContent').strip()
    print(target_text)

方式三:基于已有节点拓展定位

如果需要沿用你原有的<a>节点定位逻辑,可以通过父节点获取完整文本:

def is_it_available():
    a_element = driver.find_element(By.XPATH, '//a[contains(@href, "bbs_update")]')
    # 获取<a>的父节点td的全部文本
    full_content = a_element.find_element(By.XPATH, './parent::td').text
    target_text = full_content.split('→')[-1].strip()
    print(target_text)

注意事项

  • 若页面中文本结构固定,方式一和三的拆分逻辑稳定可靠;
  • 方式二更精准,能直接获取原始文本节点内容,避免拆分可能带来的误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:40:25