Привет, данная тема будет поделена на 2 раздел Первая часть: Как написать авторег (Что за что отвечает) Вторая часть: Готовый исходник Первая часть: Учимся писать И так начинаем! Нам понадобятся библиотеки:Selenium (pip install selenium) time (Встроен в пайтон) random (Встроенна в пайтон) Дефолт:Установлен Python 3 Установлен Google Chrome Перед написанием код нужно импортировать библиотеки в файл: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options import random import time Python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options import random import time Отлично, теперь можем работать с селениумом! Сделаем вопрос: сколько нужно создать авторегов: coll=input('Введите колл-во авторегов: ') Python coll=input('Введите колл-во авторегов: ') Отлично, перейдем к созданию авторегов для этого нам понадобится сервис временных почт mail.tm (Не реклама) Создаем цикл for (Будет прокручиваться столько раз сколько нам нужно авторегов) for i in range(0,int(coll)) if coll!='0' else range(0,999999999999999999): #Если 0 значит бесконечно цикл прокручивать login=str(random.randint(10921231,1243124312)) password=str(random.randint(10921231,1243124312)) Python for i in range(0,int(coll)) if coll!='0' else range(0,999999999999999999): #Если 0 значит бесконечно цикл прокручивать login=str(random.randint(10921231,1243124312)) password=str(random.randint(10921231,1243124312)) Отлично! теперь у нас уже есть логин и пароль с которого мы будем регистрировать аккаунт Открываем браузер: driver=webdriver.Chrome(options=options) driver.get('https://mail.tm/ru/') Python driver=webdriver.Chrome(options=options) driver.get('https://mail.tm/ru/') Отлично теперь мы на сайте с времяными почтами, нам нужно сейчас создать почту из нашего логина и пароля для этого нам нужно что бы селениум нажимал с начало на иконку профиля потом на кнопку создать аккаунт driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div/button').click() #Ищем элемент по XPATH затем кликаем driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div[3]/div/div[3]/a').click() #Ищем элемент по XPATH затем кликаем Python driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div/button').click() #Ищем элемент по XPATH затем кликаем driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div[3]/div/div[3]/a').click() #Ищем элемент по XPATH затем кликаем После у нас появляется окно: Сюда нам нужно ввести логин и пароль, что бы нам это сделать нам нужно взять xpach этого элемента для этого: 1. Нажимаете F12 2. Выбираете поиск по клику 3.Нажимаем на ввод и в коде элемента вам выделится нужный элемент 4. ПКМ > copy>Copy-full XPACH И так, теперь нам нужно ввести все данные в поля логина и пароля: def registerMail(): #Создаем функцию так как при ошибках мы удем сюда возвращаться while True: #Бесконечно циклим ввод данных try: #Выполняем код ниже global domain driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/input').send_keys(login) driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[2]/span/div/input').send_keys(password) domain=driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/div[2]/select/option').text driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[2]/span[1]/button').click() break #Если он ввел данные цикл стоп except: #Если не получилось (Окно еще не загрузилось он пробует еще раз) pass registerMail() #Вызываем ввод логина и пароль Python def registerMail(): #Создаем функцию так как при ошибках мы удем сюда возвращаться while True: #Бесконечно циклим ввод данных try: #Выполняем код ниже global domain driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/input').send_keys(login) driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[2]/span/div/input').send_keys(password) domain=driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/div[2]/select/option').text driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[2]/span[1]/button').click() break #Если он ввел данные цикл стоп except: #Если не получилось (Окно еще не загрузилось он пробует еще раз) pass registerMail() #Вызываем ввод логина и пароль Так же как вы заметили мы взяли домен @domain.addres И так, теперь нам нужно проверить выдало ли оно ошибку: try: #Если выдало ошибку мол ошибка 403 driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/p') driver.refresh() #Перезагрушает страницу registerMail() #Заного вводит логин и пароль except: # Если не выдало pass Python try: #Если выдало ошибку мол ошибка 403 driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/p') driver.refresh() #Перезагрушает страницу registerMail() #Заного вводит логин и пароль except: # Если не выдало pass Готово! Мы создали времяный адрес эл.Почты, теперь перейдем на сайт ivi и начнем регистрироваться driver.switch_to.new_window() #Создаем новую вкладку driver.get('https://www.ivi.ru/profile') #Заходим на страницу иви driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/div[2]/div/div/div/div').click() Python driver.switch_to.new_window() #Создаем новую вкладку driver.get('https://www.ivi.ru/profile') #Заходим на страницу иви driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/div[2]/div/div/div/div').click() Отлично, опять же по XPATH вводим во все окна всю инфу while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(login+'@'+domain) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[3]/div/div[1]/button').click() #Нажжимаем на кнопу далее break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[4]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass Python while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(login+'@'+domain) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[3]/div/div[1]/button').click() #Нажжимаем на кнопу далее break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[4]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass Вот и все, теперь остается лишь перейти на вкладку почты и подтвердить почту Перейдем в 1 вкладку (1 вкладка = 0, 2 вкладка = 1 (Счет идет от 0)) driver.switch_to.window(driver.window_handles[0]) driver.switch_to.window(driver.window_handles[0]) times=int(str(time.time()).split('.')[0])+15 #Берем unix время + 15 секунд while times>int(str(time.time()).split('.')[0]): #Пока наш +15-ти секундный таймер больше без +секундного unix времени выполняем try: driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/main/div/div[2]/ul/li/a/div/div[1]/div[2]').click() break except: pass else: #Если 15 секунд вышло а письмо не пришло driver.quit() #Закрываем браузер continue #Начинаем цикл занова Python driver.switch_to.window(driver.window_handles[0]) driver.switch_to.window(driver.window_handles[0]) times=int(str(time.time()).split('.')[0])+15 #Берем unix время + 15 секунд while times>int(str(time.time()).split('.')[0]): #Пока наш +15-ти секундный таймер больше без +секундного unix времени выполняем try: driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/main/div/div[2]/ul/li/a/div/div[1]/div[2]').click() break except: pass else: #Если 15 секунд вышло а письмо не пришло driver.quit() #Закрываем браузер continue #Начинаем цикл занова ВАЖНО! прочитайте комментарии к коду что бы понять о чем тут После того как мы зашли в письмо мы жмем на кнопку подтвердить аккаунт затем ждем загрузки страницы (Или аккаунт не подтвердится): [CODE=python] while True: try: driver.switch_to.frame(driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/main/div/div[3]/div[2]/div/iframe')) driver.find_element(By.XPATH,'/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr[6]/td/table/tbody/tr/td/a').click() while True: driver.switch_to.window(driver.window_handles[2]) #Переходим в вкладку №3 if driver.current_url=='https://www.ivi.ru/?registration_completed=1': #Если ссылка равна удачной регистрации заканчиваем авторег break break except: pass driver.quit() #Закрываем браузер[/CODE]И так наш авто-рег готов теперь нужно записать данные в файл: [CODE=python] with open('base.txt','r') as file: r=file.read() #Читаем цикл with open('base.txt','w') as file: file.write(r+f'{login}@{domain}:{password}\n') #Внсим старые данные + новый аккаунт[/CODE]Вот и все поздравляю у нас готовый авторег но!!!!!!!!!!!!!! Не думаю что вам приятно смотреть будет на бесконечные перезапуски браузера и вообще ввод данных, мы можем скрыть браузер - для этого после строчек где мы импортировали библиотеки пишим: [CODE=python]options=Options() options.add_argument('--headless') driver=webdriver.Chrome(options=options)[/CODE]Готово, теперь у нас есть полностью рабочий авто-рег (Читайте дальше после второй главы) Вторая часть: Камуниздим готовый код ИСХОДНИК[CODE=python]from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options import random import time options=Options() options.add_argument('--headless') coll=input('Введите колл-во авторегов: ') #Создание авто-регов for i in range(0,int(coll)) if coll!='0' else range(0,999999999999999999): login=str(random.randint(10921231,1243124312)) password=str(random.randint(10921231,1243124312)) driver=webdriver.Chrome(options=options) driver.get('https://mail.tm/ru/') driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div/button').click() #Ищем элемент по XPATH затем кликаем driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/div/div/div[2]/div[4]/div[3]/div/div[3]/a').click() #Ищем элемент по XPATH затем кликаем def registerMail(): #Создаем функцию так как при ошибках мы удем сюда возвращаться while True: #Бесконечно циклим ввод данных try: #Выполняем код ниже global domain driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/input').send_keys(login) driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[2]/span/div/input').send_keys(password) domain=driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/form/div[1]/span/div/div[2]/select/option').text driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[2]/span[1]/button').click() break #Если он ввел данные цикл стоп except: #Если не получилось (Окно еще не загрузилось он пробует еще раз) pass registerMail() #Вызываем ввод логина и пароль try: #Если выдало ошибку мол ошибка 403 driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[2]/span/p') driver.refresh() #Перезагрушает страницу registerMail() #Заного вводит логин и пароль except: # Если не выдало pass driver.switch_to.new_window() #Создаем новую вкладку driver.get('https://www.ivi.ru/profile') #Заходим на страницу иви driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/div[2]/div/div/div/div').click() while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(login+'@'+domain) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[3]/div/div[1]/button').click() #Нажжимаем на кнопу далее break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[2]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass while True: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').send_keys(password) driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[4]/div/div/button').click() break except: try: driver.find_element(By.XPATH,'/html/body/div[13]/div/div[2]/div/div/div[2]/div/div/div/div/div/form/div[3]/div/div/div/div/input').clear() #Очищаем поле для ввода если какая то ошибка except: pass driver.switch_to.window(driver.window_handles[0]) times=int(str(time.time()).split('.')[0])+15 #Берем unix время + 15 секунд while times>int(str(time.time()).split('.')[0]): #Пока наш +15-ти секундный таймер больше без +секундного unix времени выполняем try: driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/main/div/div[2]/ul/li/a/div/div[1]/div[2]').click() break except: pass else: #Если 15 секунд вышло а письмо не пришло driver.quit() #Закрываем браузер continue #Начинаем цикл заного while True: try: driver.switch_to.frame(driver.find_element(By.XPATH,'/html/body/div[1]/div/div/div[2]/main/div/div[3]/div[2]/div/iframe')) driver.find_element(By.XPATH,'/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr[6]/td/table/tbody/tr/td/a').click() while True: driver.switch_to.window(driver.window_handles[2]) #Переходим в вкладку №3 if driver.current_url=='https://www.ivi.ru/?registration_completed=1': #Если ссылка равна удачной регистрации заканчиваем авторег break break except: pass driver.quit() #Закрываем браузер with open('base.txt','r') as file: r=file.read() with open('base.txt','w') as file: file.write(r+f'{login}@{domain}:{password}\n')[/CODE] ДОП ЧАСТЬ: КОММЕНТАРИИ О КОДЕ Для всех мамкиных кодеров хочу сказать, не засирайте комментарии я прекрасно понимаю что может есть и другой способ чем циклить попытки вставить текст или нажать на кнопку но как по мне это самый быстрый способ в селениуме Мои софты: https://t.me/Lotti_portfolio