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

Selenium Python如何提取单个HTML元素中的两个字符串?

提取单个HTML元素内两段文本的解决方法

以下是几种可行的Python Selenium解决方案:

  • 通过JavaScript提取文本节点
    当text方法无法正确获取多段文本时,用JS直接提取元素下的所有非空文本节点:

    from selenium.webdriver.common.by import By
    
    # 先定位目标元素(替换成你实际的定位器)
    target_element = driver.find_element(By.CSS_SELECTOR, "div + div[data-id='7789']")
    # 执行JS获取所有文本节点内容
    text_segments = driver.execute_script("""
        return Array.from(arguments[0].childNodes)
            .filter(node => node.nodeType === Node.TEXT_NODE && node.textContent.trim())
            .map(node => node.textContent.trim());
    """, target_element)
    # text_segments会是包含两段文本的列表
    
  • 拆分text返回的完整内容
    如果element.text返回的是两段文本的拼接(比如用换行分隔),直接拆分过滤即可:

    target_element = driver.find_element(By.CSS_SELECTOR, "div + div[data-id='7789']")
    full_text = target_element.text
    text_segments = [seg.strip() for seg in full_text.split('\n') if seg.strip()]
    
  • 定位子元素提取(若文本在子标签内)
    要是两段文本分别在目标div的子元素中,直接定位子元素获取文本:

    text_elements = driver.find_elements(By.CSS_SELECTOR, "div + div[data-id='7789'] > *")
    text_segments = [elem.text.strip() for elem in text_elements if elem.text.strip()]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:53:17