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

如何用Python Selenium ChromeDriver提取HTML中的61和70%文本值?

解决WebDriver提取span标签内特定值的问题

方法1:直接定位单个span元素

针对你需要的两个值,可通过XPath直接定位对应的span子元素:

  • 提取数值61:
    value_61 = driver.find_element_by_xpath("//p[@class='stock-score tykr-score-box']/span[1]").text
    
  • 提取百分比70%:
    value_70 = driver.find_element_by_xpath("//p[@class='stock-score tykr-score-box']/span[2]").text
    

方法2:先定位父元素再遍历子span

如果需要一次性获取两个值,可先定位父级p标签,再获取其下所有span子元素:

# 定位父级p元素
score_box = driver.find_element_by_xpath("//p[@class='stock-score tykr-score-box']")
# 获取所有子span标签
span_elements = score_box.find_elements_by_tag_name("span")
# 提取对应值
value_61 = span_elements[0].text
value_70 = span_elements[1].text

优化建议:添加显式等待

为避免页面加载未完成导致的元素找不到报错,建议配合显式等待使用:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待父元素加载完成(最长等待10秒)
score_box = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//p[@class='stock-score tykr-score-box']"))
)
span_elements = score_box.find_elements_by_tag_name("span")
value_61 = span_elements[0].text
value_70 = span_elements[1].text

补充说明

如果目标span标签有专属class属性,可替换XPath为更精准的定位方式,例如:

  • 若61所在span的class为score-num,则定位XPath为//p[@class='stock-score tykr-score-box']/span[@class='score-num']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:07:09