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

在Python和Selenium中如何提取文本中的数字并赋值给变量?

在Python与Selenium环境中提取文本中的数字并赋值给变量

需求:从类似 text = "Your verification code is: 5674" 的文本里提取数字 5674 并赋值给变量 x,最终得到 x = 5674。

你提供的参考代码里的 is_digit() 并非正确用法,Python 中没有直接的全局函数 is_digit() 用于提取文本中的数字,正确做法是借助正则表达式模块 re 实现,以下是具体方案:

基础文本提取示例

如果是处理固定文本,可直接用正则匹配连续数字:

import re
txt = "Your verification code is: 5674"
# 搜索第一个连续数字序列
match_result = re.search(r'\d+', txt)
if match_result:
    # 提取匹配到的数字并转为整数
    x = int(match_result.group())
    print(x)  # 输出:5674

如果文本中存在多个数字,可用 re.findall() 获取所有数字序列:

import re
txt = "Your verification code is: 5674, expire in 10 minutes"
# 获取所有连续数字
all_numbers = re.findall(r'\d+', txt)
# 取第一个数字赋值给x
if all_numbers:
    x = int(all_numbers[0])
    print(x)  # 输出:5674

Selenium 环境下的实际应用

在Selenium中,通常先从页面元素获取文本,再提取数字,示例代码如下:

from selenium import webdriver
import re

# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开目标页面
driver.get("你的目标页面URL")

# 获取页面中包含目标数字的元素文本(这里用xpath示例,可根据实际改用id、class等定位方式)
target_element = driver.find_element("xpath", "//*[contains(text(), 'verification code')]")
txt = target_element.text

# 提取数字并赋值
match_result = re.search(r'\d+', txt)
if match_result:
    x = int(match_result.group())
    print(x)  # 输出提取到的数字

# 关闭浏览器
driver.quit()

正则表达式说明

r'\d+' 是核心匹配规则:

  • \d:匹配单个数字字符(0-9)
  • +:表示匹配前面的字符一次或多次,确保能提取连续的多位数字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:35:18