如何使用 Selenium 和正则表达式从网页文本中精准提取纯数字

浅杰姑娘_9949

浅杰姑娘_9949

2026-05-21

577人浏览

原创

如何使用 Selenium 和正则表达式从网页文本中精准提取纯数字

本文介绍在 Selenium 自动化测试中,当目标元素无 ID、class 或 name 等显式定位器时,如何通过 XPath/CSS 选择器定位含混合文本的 HTML 元素,并利用正则表达式(re.findall(r'\d+', text))高效提取其中的连续数字。

本文介绍在 selenium 自动化测试中,当目标元素无 id、class 或 name 等显式定位器时,如何通过 xpath/css 选择器定位含混合文本的 html 元素,并利用正则表达式(`re.findall(r'\d+', text)`)高效提取其中的连续数字。

在实际 Web 自动化场景中,常遇到类似

FB-91927 或
  • FB-91927 is your Facebook confirmation code
  • 这类结构:关键信息(如验证码 91927)嵌套在带前缀/后缀的文本中,且元素缺乏稳定属性(如 id 或 class),无法直接用 find_element_by_id 等传统方式精确定位。

    此时应分两步解决:精准定位 + 文本清洗提取。

    ✅ 第一步:灵活定位目标元素

    由于示例中

    无 class/id,但具备唯一性样式(如 font-size:20px)或位置特征,推荐使用 XPath 属性包含匹配 或 CSS 选择器文本模糊定位:
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import re
    
    driver = webdriver.Chrome()
    driver.get("https://example.com")  # 替换为目标网页URL
    
    # 方案1:通过 td 标签内文模糊匹配(推荐,鲁棒性强)
    td_element = driver.find_element(By.XPATH, "//td[contains(text(), 'FB-')]")
    text_content = td_element.text  # → "FB-91927"
    
    # 方案2:通过 li.title 定位(题目中已知 class)
    li_element = driver.find_element(By.CSS_SELECTOR, "li.title")
    text_content = li_element.text  # → "FB-91927 is your Facebook confirmation code"

    ⚠️ 注意:find_elements_by_class_name("title") 已被 Selenium 4+ 弃用,必须改用 By.CLASS_NAME 或 By.CSS_SELECTOR 配合 find_element()(单元素)或 find_elements()(多元素)。

    朱雀AI检测
    朱雀AI检测

    朱雀AI检测是一款AI工具,腾讯推出的AI内容检测助手。

    下载

    ✅ 第二步:用正则提取纯数字

    获取原始文本后,使用 re.findall(r'\d+', text) 提取所有连续数字片段(\d+ 表示一个或多个数字):

    # 提取所有数字组(返回字符串列表)
    numbers = re.findall(r'\d+', text_content)
    print(numbers)  # 输出:['91927'](若文本为 "FB-91927" 或 "FB-91927 is your code")
    
    # 获取第一个数字(通常即所需验证码)
    confirmation_code = numbers[0] if numbers else None
    print("Extracted code:", confirmation_code)  # → "91927"

    如需更严格匹配(例如仅提取 5 位数字),可升级正则:

    # 仅匹配恰好5位数字
    code_5digits = re.search(r'\b\d{5}\b', text_content)
    if code_5digits:
        confirmation_code = code_5digits.group()  # → "91927"

    ✅ 完整可运行示例

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.options import Options
    import re
    
    options = Options()
    options.add_argument("--headless")  # 无界面模式
    driver = webdriver.Chrome(options=options)
    
    try:
        driver.get("https://your-target-page.com")
    
        # 定位含 FB- 前缀的 li 元素(兼容 class="title" 场景)
        element = driver.find_element(By.XPATH, "//li[contains(@class,'title') or contains(text(),'FB-')]")
        raw_text = element.text
    
        # 提取数字
        digits = re.findall(r'\d+', raw_text)
        code = digits[0] if digits else ""
    
        print(f"✅ Extracted numeric code: {code}")
    
    finally:
        driver.quit()

    ? 关键总结:

    • 避免依赖不稳定属性,善用 contains(text(), ...) 或 contains(@class, ...) 的 XPath;
    • 正则 r'\d+' 是提取数字的通用解法,按需可扩展为 \d{4,6}、\b\d{5}\b 等精确模式;
    • 始终添加异常处理(如 NoSuchElementException)和空值校验,保障脚本健壮性。

    相关专题

    更多
    html版权符号
    html版权符号

    html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    2023.06.14

    7095

    7

    html在线编辑器
    html在线编辑器

    html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

    2023.06.21

    3912

    4

    html网页制作
    html网页制作

    html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

    2023.07.31

    3590

    5

    html空格
    html空格

    html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.01

    3599

    5

    html是什么
    html是什么

    HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

    2023.08.11

    5139

    6

    html字体大小怎么设置
    html字体大小怎么设置

    在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

    2023.08.11

    3541

    3

    html转txt
    html转txt

    html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.31

    3349

    3

    html文本框代码怎么写
    html文本框代码怎么写

    html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

    2023.09.01

    2908

    6

    HTML嵌入CSS样式的方法
    HTML嵌入CSS样式的方法

    HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

    2023.09.20

    3048

    5

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    WEB前端教程【HTML5+CSS3+JS】
    WEB前端教程【HTML5+CSS3+JS】

    共101课时 | 21.3万人学习

    JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战

    共11课时 | 1.7万人学习

    布尔教育正则表达式视频教程
    布尔教育正则表达式视频教程

    共14课时 | 5.1万人学习