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

Python Selenium如何提取元素id或class属性中的指定字符串片段

Selenium提取id属性中指定数字段的实现方法

完全可以提取class、id、name这类元素属性中的指定内容,针对你提到的id格式为number_15位数字的场景,可按以下方法实现:

  • 定位元素:用CSS属性前缀选择器div[id^="number_"],直接匹配所有id以number_开头的div元素,无需额外过滤
  • 提取属性:遍历所有匹配元素,获取id属性值后,用字符串分割或者正则提取后缀的15位数字
  • 结果存储:把提取到的数字统一存入列表即可
from selenium import webdriver
from selenium.webdriver.common.by import By
import re

# 初始化浏览器驱动,此处以Chrome为例
driver = webdriver.Chrome()
# 打开目标站点页面
driver.get("替换为你的目标页面URL")

# 方案1:规则固定时用字符串分割,实现最简单
number_list = []
elements = driver.find_elements(By.CSS_SELECTOR, 'div[id^="number_"]')
for ele in elements:
    ele_id = ele.get_attribute("id")
    # 按下划线分割后取第二段即为数字段
    target_num = ele_id.split("_")[1]
    number_list.append(target_num)

# 方案2:正则匹配,容错性更高,避免特殊格式报错
number_list = []
elements = driver.find_elements(By.CSS_SELECTOR, 'div[id^="number_"]')
for ele in elements:
    ele_id = ele.get_attribute("id")
    # 匹配number_后的15位纯数字
    match_result = re.search(r"number_(\d{15})", ele_id)
    if match_result:
        target_num = match_result.group(1)
        number_list.append(target_num)

# 验证结果
print(number_list)
# 关闭浏览器
driver.quit()

如果需要提取class、name属性中的对应内容,逻辑完全一致,仅需要将get_attribute("id")替换为对应属性名,再调整分割或正则匹配规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:51:02