Исходник Автоматическая регистрация почт mail.ru

Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
Всем привет, вообще это должен был быть авторег стим, но я посчитал нужным сделать для стим авторега почты. Проект был задуман в сентябре, но из-за того что я очень ленивый и имею много проблем в реальной жизни, решил доделать его только сегодня. Кстати выбрал маил ру, потому что она относительно популярная и для регистрации не нужен номер (При условии что айпи русский и не лимитнут (акаунта 4)), ну и капча там самая простая.

Я делал ее с закосом под библиотеку, чтобы в будущем, можно было подключить ее к стим авторегу

Python:
from datetime import datetime
from random import choice

from requests import Session

from mailru import Registration, utils


session = Session()

registration = Registration(
    session=session,
    name=utils.get_random_string(5),
    surname=utils.get_random_string(5),
    birthday=utils.get_random_datetime(datetime(1970, 1, 1), datetime(2004, 1, 1)),
    gender=choice(("male", "female")),
    mail=utils.get_random_string(8),
    domain=choice(("mail.ru", "internet.ru", "bk.ru", "inbox.ru", "list.ru")),
    password=utils.get_random_string(16),
    restore_mail=utils.get_random_string(7) + "@" + utils.get_random_string(4) + "." + utils.get_random_string(2)
)
token = registration.signup()
captcha_bytes = registration.get_captcha_code()
captcha_solve = ...  # Тут должно быть решение капчи
join_url = registration.confirm(token, captcha_solve)
session.get(join_url)

print(
    "login: " + registration.mail,
    "password: " + registration.password,
    "restore_mail" + registration.restore_mail,
    "domain" + registration.domain
)
Вроде как тут все просто и понятно
1. Создается объект регистрации
2. Вызывается метод signup который отправляет указанные данные и возвращает токен нужный для подтверждения
3. Вызывается метод get_captcha_code для получения байтов изображения капчи (если что формат jpeg)
4. Тут нужно решить капчу, можно самому, можно через апи
5. Отправляется подтверждение капчи и возвращается url для быстрого входа, если через нее не войти, то при входе с пароля будет требовать почту восстановления
6. Отправляется гет запрос на ссылку для входа чтобы избежать 5й пункт

В принципе - не сложно, но над логикой я ебался относительно долго, пока не осознал что нужна сессия для кук, потому что там все на них :)
Так же для более удобного тестирования я писал на реквестах, но можно добавить async к каждой функции и await к каждому вызову, заменив Session на aiohttp.ClientSession
 

Вложения

Участник
Статус
Оффлайн
Регистрация
28 Май 2019
Сообщения
1,034
Реакции[?]
317
Поинты[?]
9K
Я думаю, если ты будешь поддерживать такой проект, было бы неплохо добавить запись в файл
И такой вопрос, насколько почт это рассчитано без прокси?):LUL:
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
Я думаю, если ты будешь поддерживать такой проект, было бы неплохо добавить запись в файл
И такой вопрос, насколько почт это рассчитано без прокси?):LUL:
Ну, как я и написал, что не зря сделал его в виде библиотеки, чтобы каждый мог сам сделать что ему нужно, хоть подключить RuCaptcha (Я ее подключал, но из-за косой библиотеки, пришлось внести в нее правки, поэтому не выложил этот код с ней), хоть запись
Python:
with open("accounts.txt", "a", encoding="utf8") as file:
    file.write(f"{registration.mail}@{registration.domain}:{registration.password}\n")
Да, если айпи русский, то можно зарегистрировать 3-5 аккаунтов
 
Начинающий
Статус
Оффлайн
Регистрация
28 Авг 2023
Сообщения
176
Реакции[?]
24
Поинты[?]
24K
Всем привет, вообще это должен был быть авторег стим, но я посчитал нужным сделать для стим авторега почты. Проект был задуман в сентябре, но из-за того что я очень ленивый и имею много проблем в реальной жизни, решил доделать его только сегодня. Кстати выбрал маил ру, потому что она относительно популярная и для регистрации не нужен номер (При условии что айпи русский и не лимитнут (акаунта 4)), ну и капча там самая простая.

Я делал ее с закосом под библиотеку, чтобы в будущем, можно было подключить ее к стим авторегу

Python:
from datetime import datetime
from random import choice

from requests import Session

from mailru import Registration, utils


session = Session()

registration = Registration(
    session=session,
    name=utils.get_random_string(5),
    surname=utils.get_random_string(5),
    birthday=utils.get_random_datetime(datetime(1970, 1, 1), datetime(2004, 1, 1)),
    gender=choice(("male", "female")),
    mail=utils.get_random_string(8),
    domain=choice(("mail.ru", "internet.ru", "bk.ru", "inbox.ru", "list.ru")),
    password=utils.get_random_string(16),
    restore_mail=utils.get_random_string(7) + "@" + utils.get_random_string(4) + "." + utils.get_random_string(2)
)
token = registration.signup()
captcha_bytes = registration.get_captcha_code()
captcha_solve = ...  # Тут должно быть решение капчи
join_url = registration.confirm(token, captcha_solve)
session.get(join_url)

print(
    "login: " + registration.mail,
    "password: " + registration.password,
    "restore_mail" + registration.restore_mail,
    "domain" + registration.domain
)
Вроде как тут все просто и понятно
1. Создается объект регистрации
2. Вызывается метод signup который отправляет указанные данные и возвращает токен нужный для подтверждения
3. Вызывается метод get_captcha_code для получения байтов изображения капчи (если что формат jpeg)
4. Тут нужно решить капчу, можно самому, можно через апи
5. Отправляется подтверждение капчи и возвращается url для быстрого входа, если через нее не войти, то при входе с пароля будет требовать почту восстановления
6. Отправляется гет запрос на ссылку для входа чтобы избежать 5й пункт

В принципе - не сложно, но над логикой я ебался относительно долго, пока не осознал что нужна сессия для кук, потому что там все на них :)
Так же для более удобного тестирования я писал на реквестах, но можно добавить async к каждой функции и await к каждому вызову, заменив Session на aiohttp.ClientSession
Traceback (most recent call last):
File "C:\Users\User\Desktop\mailru\registration.py", line 6, in <module>
from .constants import generate_request_data_dict
ImportError: attempted relative import with no known parent package
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
Traceback (most recent call last):
File "C:\Users\User\Desktop\mailru\registration.py", line 6, in <module>
from .constants import generate_request_data_dict
ImportError: attempted relative import with no known parent package
Ты пытаешься запустить файл внутри mailru?
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
Да, я не понимаю как использовать это в виде библиотеки...
кладешь в корень своего проекта папку mailru, да или в принципе не важно куда ты ее положишь и импортируешь объект Registration, а там все понятно и с аннотациями, разберешься
 
how to get json?
Пользователь
Статус
Оффлайн
Регистрация
10 Окт 2019
Сообщения
310
Реакции[?]
54
Поинты[?]
16K
жду такое же с outlook/gmail через шедевроrequests
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
жду такое же с outlook/gmail через шедевроrequests
Кстати я хотел сделать что ни будь из этого, но просто у меня раз в месяц возникает желание что-то делать и во-первых, видя подобную хуйню, желание резко отпадает
1700340899175.png
а во-вторых, даже если я сяду, потрачу свое время, разберусь и сделаю авторег, то по закону подлости через день эти пидорасы обновят что нибудь в регистрации
 
how to get json?
Пользователь
Статус
Оффлайн
Регистрация
10 Окт 2019
Сообщения
310
Реакции[?]
54
Поинты[?]
16K
Кстати я хотел сделать что ни будь из этого, но просто у меня раз в месяц возникает желание что-то делать и во-первых, видя подобную хуйню, желание резко отпадает
Посмотреть вложение 264074
а во-вторых, даже если я сяду, потрачу свое время, разберусь и сделаю авторег, то по закону подлости через день эти пидорасы обновят что нибудь в регистрации
конечно поменяют, я их заставлю
 
Начинающий
Статус
Оффлайн
Регистрация
28 Авг 2023
Сообщения
176
Реакции[?]
24
Поинты[?]
24K
кладешь в корень своего проекта папку mailru, да или в принципе не важно куда ты ее положишь и импортируешь объект Registration, а там все понятно и с аннотациями, разберешься
Спасибо!
 
Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2019
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Traceback (most recent call last):
File "C:\Users\zz123\PycharmProjects\маилрегер\mailru\registration.py", line 6, in <module>
from .constants import generate_request_data_dict
ImportError: attempted relative import with no known parent package
 
Сверху Снизу