手动创建 Gmail 帐户可能很繁琐,尤其是当你需要多个帐户进行测试或其他目的时。在本教程中,你将学习如何使用 Python 和 硒。此外,我们将使用 骗子
生成随机用户数据的库, 随机的
用于密码生成,以及 webdriver 管理器
和 PySocks
处理 代理.
先决条件
在开始之前,请确保您已安装以下软件:
- Python 3.x
- 硒
- Chrome WebDriver
- 骗子
- PySocks
- Selenium 的 WebDriver 管理器
您可以使用 pip 安装 Selenium、Faker、PySocks 和 WebDriver Manager:
pip 安装 selenium faker pysocks webdriver-manager
从以下位置下载 Chrome WebDriver 这里 并确保它在你的PATH中。
脚本概述
该脚本将:
- 生成随机的名字、姓氏、用户名和密码。
- 使用 Selenium 打开 Gmail 注册页面。
- 使用生成的数据填写注册表。
- 提交表格。
- 使用 SOCKS5 代理人 进行注册过程。
步骤 1:导入库并初始化 Faker
首先,我们将导入必要的库并初始化 骗子
:
从 selenium 导入 webdriver 从 selenium.webdriver.common.by 导入 By 从 selenium.webdriver.support.ui 导入 WebDriverWait 从 selenium.webdriver.support 导入 expected_conditions 作为 EC 从 faker 导入 Faker 导入随机导入字符串导入时间从 webdriver_manager.chrome 导入 ChromeDriverManager 从 selenium.webdriver.chrome.service 导入服务从 selenium.webdriver.chrome.options 导入选项 # 初始化 Faker fake = Faker()
第 2 步:生成随机数据
接下来,我们将创建一个函数来生成随机密码并生成随机用户数据:
# 生成随机密码的函数 def generate_password(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for i in range(length)) return password # 生成随机用户数据 first_name = fake.first_name() last_name = fake.last_name() username = first_name.lower() + last_name.lower() + str(random.randint(1000, 9999)) password = generate_password()
步骤 3:使用代理初始化 Selenium WebDriver
初始化 Chrome WebDriver 并导航到 Gmail 注册页面,使用 SOCKS5 代理:
# 代理设置(用您的代理详细信息替换) proxy = "your_proxy_address:your_proxy_port" # 使用代理设置初始化 Chrome WebDriver chrome_options = Options() chrome_options.add_argument("--proxy-server=socks5://" + proxy) # 初始化 WebDriver service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) # 打开 Gmail 注册页面 driver.get("https://accounts.谷歌.com/signup”)
步骤 4:填写注册表
等待页面加载,找到表单字段,并使用生成的数据填充它们:
# 等待页面加载并定位表单字段 wait = WebDriverWait(driver, 10) first_name_field = wait.until(EC.presence_of_element_located((By.ID, "firstName"))) last_name_field = driver.find_element(By.ID, "lastName") username_field = driver.find_element(By.ID, "username") password_field = driver.find_element(By.NAME, "Passwd") confirmed_password_field = driver.find_element(By.NAME, "ConfirmPasswd") # 填写表单字段 first_name_field.send_keys(first_name) last_name_field.send_keys(last_name) username_field.send_keys(username) password_field.send_keys(password) confirmed_password_field.send_keys(password)
第 5 步:提交表格
提交表单并添加延迟以允许下一页加载:
# 提交表单 next_button = driver.find_element(By.XPATH, '//*[@id="accountDetailsNext"]/div/button') next_button.click() # 添加延迟以允许下一页加载(您可能需要调整睡眠时间) time.sleep(5)
步骤 6:处理其他步骤
根据 Google 的注册流程,您可能需要处理其他步骤,例如电话验证、恢复电子邮件或 CAPTCHA。此部分会有所不同,可能需要更高级的处理。
步骤 7:关闭浏览器
该过程完成后关闭浏览器:
# 进程完成后关闭浏览器 driver.quit() # 输出生成的数据 print(f"First Name: {first_name}") print(f"Last Name: {last_name}") print(f"Username: {username}") print(f"Password: {password}")
完整脚本
以下是包含所有步骤的完整脚本:
从 selenium 导入 webdriver 从 selenium.webdriver.common.by 导入 By 从 selenium.webdriver.support.ui 导入 WebDriverWait 从 selenium.webdriver.support 导入 expected_conditions 作为 EC 从 faker 导入 Faker 导入随机导入字符串导入时间从 webdriver_manager.chrome 导入 ChromeDriverManager 从 selenium.webdriver.chrome.service 导入服务从 selenium.webdriver.chrome.options 导入选项 # 初始化 Faker fake = Faker() # 生成随机密码的函数 def generate_password(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for i in range(length)) return password # 生成随机用户数据 first_name = fake.first_name() last_name = fake.last_name() username = first_name.lower() + last_name.lower() + str(random.randint(1000, 9999)) password = generate_password() # 代理设置(用您的代理详细信息替换) proxy = "your_proxy_address:your_proxy_port" # 使用代理设置初始化 Chrome WebDriver chrome_options = Options() chrome_options.add_argument("--proxy-server=socks5://" + proxy) # 初始化 WebDriver service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) # 打开 Gmail 注册页面 driver.get("https://accounts.google.com/signup") # 等待页面加载并找到表单字段 wait = WebDriverWait(driver, 10) first_name_field = wait.until(EC.presence_of_element_located((By.ID, "firstName"))) last_name_field = driver.find_element(By.ID, "lastName") username_field = driver.find_element(By.ID, "username") password_field = driver.find_element(By.NAME, "Passwd") confirmed_password_field = driver.find_element(By.NAME, "ConfirmPasswd") # 填写表单字段 first_name_field.send_keys(first_name) last_name_field.send_keys(last_name) username_field.send_keys(username) password_field.send_keys(password) confirmed_password_field.send_keys(password) # 提交表单 next_button = driver.find_element(By.XPATH, '//*[@id="accountDetailsNext"]/div/button') next_button.click() # 添加延迟以允许加载下一页(可能需要调整睡眠时间) time.sleep(5) # 进程完成后关闭浏览器 driver.quit() # 输出生成的数据 print(f"First Name: {first_name}") print(f"Last Name: {last_name}") print(f"Username: {username}") print(f"Password: {password}")
结论
您已成功使用 Python 和 Selenium 自动化 Gmail 帐户注册流程,并添加了 SOCKS5 代理支持。此脚本会生成随机用户数据、填写注册表单并通过指定代理路由流量。
记得更换 你的代理地址:你的代理端口
使用您的实际代理详细信息并负责任地使用此脚本,牢记自动创建帐户的法律和道德影响。