La création manuelle de comptes Gmail peut être fastidieuse, surtout si vous avez besoin de plusieurs comptes à des fins de test ou à d'autres fins. Dans ce didacticiel, vous apprendrez comment automatiser le processus d'enregistrement d'un compte Gmail à l'aide de Python et Selenium. De plus, nous utiliserons le faker
bibliothèque pour générer des données utilisateur aléatoires, random
pour la génération de mots de passe, et webdriver-manager
et PySocks
pour gérer les proxys.
Conditions préalables
Avant de commencer, assurez-vous que les éléments suivants sont installés :
- Python 3.x
- Sélénium
- Pilote Web Chrome
- Plus faux
- PySocks
- Gestionnaire WebDriver pour Selenium
Vous pouvez installer Selenium, Faker, PySocks et WebDriver Manager à l'aide de pip :
pip install selenium faker pysocks webdriver-manager
Téléchargez le Chrome WebDriver depuis ici et assurez-vous qu'il est dans votre PATH.
Aperçu des scripts
Le script va :
- Générez un prénom, un nom, un nom d'utilisateur et un mot de passe aléatoires.
- Ouvrez la page d'inscription Gmail à l'aide de Selenium.
- Remplissez le formulaire d'inscription avec les données générées.
- Soumettez le formulaire.
- Utilisez un proxy SOCKS5 pour le processus d'inscription.
Étape 1 : importer des bibliothèques et initialiser Faker
Tout d'abord, nous allons importer les bibliothèques nécessaires et initialiser Faker
:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from faker import Faker
import random
import string
import time
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
# Initialize Faker
fake = Faker()
Étape 2 : Générer des données aléatoires
Ensuite, nous allons créer une fonction pour générer un mot de passe aléatoire et générer les données utilisateur aléatoires :
# Function to generate a random password
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
# Generate random user data
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()
Étape 3 : initialiser Selenium WebDriver avec proxy
Initialisez Chrome WebDriver et accédez à la page d'inscription Gmail à l'aide d'un proxy SOCKS5 :
# Proxy settings (replace with your proxy details)
proxy = "your_proxy_address:your_proxy_port"
# Initialize Chrome WebDriver with proxy settings
chrome_options = Options()
chrome_options.add_argument("--proxy-server=socks5://" + proxy)
# Initialize the WebDriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
# Open Gmail signup page
driver.get("https://accounts.google.com/signup")
Étape 4 : Remplissez le formulaire d'inscription
Attendez que la page se charge, localisez les champs du formulaire et remplissez-les avec les données générées :
# Wait for the page to load and locate the form fields
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")
confirm_password_field = driver.find_element(By.NAME, "ConfirmPasswd")
# Fill out the form fields
first_name_field.send_keys(first_name)
last_name_field.send_keys(last_name)
username_field.send_keys(username)
password_field.send_keys(password)
confirm_password_field.send_keys(password)
Étape 5 : Envoyer le formulaire
Soumettez le formulaire et ajoutez un délai pour permettre à la page suivante de se charger :
# Submit the form
next_button = driver.find_element(By.XPATH, '//*[@id="accountDetailsNext"]/div/button')
next_button.click()
# Add a delay to allow the next page to load (you may need to adjust the sleep time)
time.sleep(5)
Étape 6 : Gérer les étapes supplémentaires
En fonction du processus d'inscription de Google, vous devrez peut-être effectuer des étapes supplémentaires telles que la vérification du téléphone, l'e-mail de récupération ou le CAPTCHA. Cette partie varie et peut nécessiter une manipulation plus avancée.
Étape 7 : fermez le navigateur
Fermez le navigateur une fois le processus terminé :
# Close the browser after the process is complete
driver.quit()
# Output the generated data
print(f"First Name: {first_name}")
print(f"Last Name: {last_name}")
print(f"Username: {username}")
print(f"Password: {password}")
Scénario complet
Voici le script complet regroupant toutes les étapes :
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from faker import Faker
import random
import string
import time
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
# Initialize Faker
fake = Faker()
# Function to generate a random password
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
# Generate random user data
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 settings (replace with your proxy details)
proxy = "your_proxy_address:your_proxy_port"
# Initialize Chrome WebDriver with proxy settings
chrome_options = Options()
chrome_options.add_argument("--proxy-server=socks5://" + proxy)
# Initialize the WebDriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
# Open Gmail signup page
driver.get("https://accounts.google.com/signup")
# Wait for the page to load and locate the form fields
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")
confirm_password_field = driver.find_element(By.NAME, "ConfirmPasswd")
# Fill out the form fields
first_name_field.send_keys(first_name)
last_name_field.send_keys(last_name)
username_field.send_keys(username)
password_field.send_keys(password)
confirm_password_field.send_keys(password)
# Submit the form
next_button = driver.find_element(By.XPATH, '//*[@id="accountDetailsNext"]/div/button')
next_button.click()
# Add a delay to allow the next page to load (you may need to adjust the sleep time)
time.sleep(5)
# Close the browser after the process is complete
driver.quit()
# Output the generated data
print(f"First Name: {first_name}")
print(f"Last Name: {last_name}")
print(f"Username: {username}")
print(f"Password: {password}")
Conclusion
Vous avez automatisé avec succès le processus d'enregistrement du compte Gmail à l'aide de Python et Selenium, avec l'ajout de la prise en charge du proxy SOCKS5. Ce script génère des données utilisateur aléatoires, remplit le formulaire d'inscription et achemine le trafic via un proxy spécifié.
N'oubliez pas de remplacer your_proxy_address:your_proxy_port
avec les détails réels de votre proxy et utilisez ce script de manière responsable, en gardant à l'esprit les implications juridiques et éthiques de l'automatisation de la création de compte.