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

Python如何遍历数字数组同时随机逐个获取邮箱数组元素

实现方案

核心逻辑说明

你提到并非完全随机逐个取邮箱,这里提供两种常用实现,可按需选择:

  • 轮询取数:按邮箱数组顺序逐个取用,用完后从头循环,取数顺序固定
  • 每轮无重复随机取:每一轮遍历numbers前先打乱邮箱数组,逐个取用,每一轮内邮箱不会重复,整体顺序随机

修正后代码(含轮询取邮箱实现)

import time
# 补充缺失的selenium相关导入,需提前安装selenium库
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

numbers = [2589001,2589002,2589003,2589004,2589005,2589006,2589007,2589008,2589009,2589010] 
email = ["mail1@gmail.com","mail2@gmail.com","mail3@gmail.com","mail4@gmail.com","mail5@gmail.com"] 

# 全局邮箱计数器,维护取数位置
email_idx = 0
def oo() :
    global email_idx
    # 取当前位置的邮箱,取完自动循环
    selected_email = email[email_idx % len(email)]
    email_idx += 1
    return selected_email

def vs () :
    for idx, nm in enumerate(numbers) :
        # Number Input 修正原代码笔误nw为nm
        WebDriverWait(browser, 2500).until(EC.presence_of_element_located((By.NAME, "Number"))).send_keys(nm)
        time.sleep(1)
        # 调用oo()拿到邮箱直接填入
        WebDriverWait(browser, 2500).until(EC.presence_of_element_located((By.NAME, "Number"))).send_keys(oo())
        time.sleep(1)

w = 0     
while w < 50 :
    vs ()
    w += 1

若需要每轮随机无重复取邮箱,替换oo函数即可

import random

# 存储当前轮次的随机邮箱队列
current_email_queue = []
def oo() :
    global current_email_queue
    # 队列为空时重新生成打乱的邮箱列表
    if not current_email_queue:
        current_email_queue = random.sample(email, len(email))
    # 取出队列第一个元素
    return current_email_queue.pop(0)

注意事项

  • 原代码中browser对象需要提前初始化,比如browser = webdriver.Chrome(),否则会运行报错
  • WebDriverWait的第二个参数是等待秒数,2500秒过长,建议调整为10~30即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:02