Загрузка...

How to make autoreg ivi or how to constantly buy a subscription for 1 ruble

Thread in Virology created by JavaScript Sep 20, 2023. 430 views

  1. JavaScript
    JavaScript Topic starter Sep 20, 2023 node.js 524 Jan 11, 2022
    Привет, данная тема будет поделена на 2 раздел
    Первая часть: Как написать авторег (Что за что отвечает)
    Вторая часть: Готовый исходник


    Первая часть: Учимся писать
    [IMG]
    И так начинаем!
    Нам понадобятся библиотеки:
    Selenium (pip install selenium)
    time (Встроен в пайтон)
    random (Встроенна в пайтон)
    Дефолт:
    Установлен Python 3
    Установлен Google Chrome

    Перед написанием код нужно импортировать библиотеки в файл:​

    Python
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.options import Options
    import random
    import time
    Отлично, теперь можем работать с селениумом!

    Сделаем вопрос: сколько нужно создать авторегов:
    Python
    coll=input('Введите колл-во авторегов: ')
    Отлично, перейдем к созданию авторегов для этого нам понадобится сервис временных почт mail.tm (Не реклама)
    Создаем цикл for (Будет прокручиваться столько раз сколько нам нужно авторегов)
    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))
    Отлично! теперь у нас уже есть логин и пароль с которого мы будем регистрировать аккаунт
    Открываем браузер:
    Python
        driver=webdriver.Chrome(options=options)
    driver.get('https://mail.tm/ru/')
    Отлично теперь мы на сайте с времяными почтами, нам нужно сейчас создать почту из нашего логина и пароля для этого нам нужно что бы селениум нажимал с начало на иконку профиля потом на кнопку создать аккаунт
    [IMG]

    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 затем кликаем
    После у нас появляется окно:
    [IMG]

    Сюда нам нужно ввести логин и пароль, что бы нам это сделать нам нужно взять xpach этого элемента для этого:
    1. Нажимаете F12
    2. Выбираете поиск по клику
    [IMG]

    3.Нажимаем на ввод и в коде элемента вам выделится нужный элемент
    4. ПКМ > copy>Copy-full XPACH
    [IMG]

    И так, теперь нам нужно ввести все данные в поля логина и пароля:

    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

    И так, теперь нам нужно проверить выдало ли оно ошибку:
    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 и начнем регистрироваться


    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 вводим во все окна всю инфу

    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))
    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]Готово, теперь у нас есть полностью рабочий авто-рег (Читайте дальше после второй главы)


    Вторая часть: Камуниздим готовый код
    [IMG]

    ИСХОДНИК
    [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]

    ДОП ЧАСТЬ: КОММЕНТАРИИ О КОДЕ
    [IMG]
    Для всех мамкиных кодеров хочу сказать, не засирайте комментарии я прекрасно понимаю что может есть и другой способ чем циклить попытки вставить текст или нажать на кнопку но как по мне это самый быстрый способ в селениуме

    Мои софты: https://t.me/Lotti_portfolio
     
  2. JavaScript
    JavaScript Topic starter Sep 20, 2023 node.js 524 Jan 11, 2022
    Сейчас пофикшу с исходником
     
    1. View previous comments (1)
    2. vuchaev2015
    3. View the next comments (1)
Loading...
Top