Загрузка...

Как сделать авторег ivi или как постоянно покупать подписку за 1р

Тема в разделе Вирусология создана пользователем JavaScript 20 сен 2023. 383 просмотра

Загрузка...
  1. JavaScript
    JavaScript Автор темы 20 сен 2023 node.js 119 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
     
    20 сен 2023 Изменено
  2. JavaScript
    JavaScript Автор темы 20 сен 2023 node.js 119 11 янв 2022
    Сейчас пофикшу с исходником
     
    1. Посмотреть предыдущие комментарии (2)
Top