Das manuelle Erstellen von Gmail-Konten kann mühsam sein, insbesondere wenn Sie mehrere Konten zu Testzwecken oder für andere Zwecke benötigen. In diesem Tutorial erfahren Sie, wie Sie den Registrierungsprozess für Gmail-Konten mit Python und Selenium automatisieren. Darüber hinaus verwenden wir die faker
Bibliothek zur Generierung zufälliger Benutzerdaten, random
zur Passwortgenerierung und webdriver-manager
Und PySocks
um Proxys zu handhaben.
Voraussetzungen
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes installiert haben:
- Python 3.x
- Selen
- Chrome WebDriver
- Schwindler
- PySocks
- WebDriver Manager für Selenium
Sie können Selenium, Faker, PySocks und WebDriver Manager mit pip installieren:
pip install selenium faker pysocks webdriver-manager
Laden Sie den Chrome WebDriver herunter von Hier und stellen Sie sicher, dass es in Ihrem PATH ist.
Skriptübersicht
Das Skript führt Folgendes aus:
- Generieren Sie zufällig Vor- und Nachnamen, Benutzernamen und Passwörter.
- Öffnen Sie die Gmail-Anmeldeseite mit Selenium.
- Füllen Sie das Anmeldeformular mit den generierten Daten aus.
- Senden Sie das Formular ab.
- Verwenden Sie für den Registrierungsprozess einen SOCKS5-Proxy.
Schritt 1: Bibliotheken importieren und Faker initialisieren
Zuerst importieren wir die notwendigen Bibliotheken und initialisieren 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()
Schritt 2: Zufällige Daten generieren
Als nächstes erstellen wir eine Funktion zum Generieren eines zufälligen Passworts und zum Generieren der zufälligen Benutzerdaten:
# 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()
Schritt 3: Selenium WebDriver mit Proxy initialisieren
Initialisieren Sie den Chrome WebDriver und navigieren Sie mithilfe eines SOCKS5-Proxys zur Gmail-Anmeldeseite:
# 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")
Schritt 4: Füllen Sie das Anmeldeformular aus
Warten Sie, bis die Seite geladen ist, suchen Sie die Formularfelder und füllen Sie sie mit den generierten Daten aus:
# 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)
Schritt 5: Senden Sie das Formular
Senden Sie das Formular und fügen Sie eine Verzögerung hinzu, damit die nächste Seite geladen werden kann:
# 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)
Schritt 6: Weitere Schritte durchführen
Abhängig vom Anmeldevorgang von Google müssen Sie möglicherweise zusätzliche Schritte ausführen, z. B. eine Telefonüberprüfung, eine Wiederherstellungs-E-Mail oder ein CAPTCHA. Dieser Teil variiert und erfordert möglicherweise eine fortgeschrittenere Handhabung.
Schritt 7: Schließen Sie den Browser
Schließen Sie den Browser, sobald der Vorgang abgeschlossen ist:
# 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}")
Vollständiges Skript
Hier ist das vollständige Skript, das alle Schritte kombiniert:
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}")
Abschluss
Sie haben den Registrierungsprozess für das Gmail-Konto mithilfe von Python und Selenium erfolgreich automatisiert und zusätzlich SOCKS5-Proxy-Unterstützung hinzugefügt. Dieses Skript generiert zufällige Benutzerdaten, füllt das Registrierungsformular aus und leitet den Datenverkehr über einen angegebenen Proxy um.
Denken Sie daran, zu ersetzen your_proxy_address:your_proxy_port
mit Ihren tatsächlichen Proxy-Details und verwenden Sie dieses Skript verantwortungsbewusst. Denken Sie dabei an die rechtlichen und ethischen Auswirkungen der automatischen Kontoerstellung.