mymail-parser
mymail-parser copied to clipboard
Автоматизированный парсер email-адресов соц. сети "Мой мир@Mail.Ru"
mymail-parser
mymail-parser — это простой Python-скрипт (разрабатывался для ОС Windows), использующий мощности модуля Selenium для автоматизации парсинга почтовых адресов социальной сети "Мой мир@Mail.Ru".
:warning: ДИСКЛЕЙМЕР :warning: Инструмент был написан из исследовательских соображений и не несет в себе цели навредить кому-либо (чему-либо). Слово бойскаута.

Порядок использования
Для использования скрипта необходимо провести ряд подготовительных мероприятий, о которых ниже по порядку:
- Заполнить поля
LOGINиPASSWORDв файле credentials.py своими логином и паролем от соц. сети "Мой мир@Mail.Ru" соответственно. - Скачать и распаковать веб-драйвер браузера Firefox (geckodriver), после чего указать к нему путь в переменной
GECKODRIVER_PATHв файле mymail_parser.py. - Отправиться на Мой Мир и сформировать поисковой запрос, почтовые адреса из результата которого мы хотели бы ~~поиметь~~ спарсить, и скопировать получившуюся ссылку из поисковой строки (должно получиться что-то вроде https://my.mail.ru/my/search_people?&name=John%20Doe&gender=1&agerange=16) в переменную
SEARCH_QUERYв файле mymail_parser.py. Для успешного выполнения поиска аккаунт должен быть подтверждён, и одним из способов подтверждения аккаунта является привязка к нему номера телефона (механизм безопасности № 1). - (опционально) Включить дебаг-режим можно присвоив флагу
HEADLESSв файле mymail_parser.py значениеTrue. В этом случае при запуске скрипта будет открываться окно виртуального Firefox'а, по которому будет прыгать эфемерный курсор, нажимая на вполне реальные кнопки :wink:
Запуск
DEB-зависимости:
- интерпретатор python3.x (или выше)
PIP-зависимости:
Выполнив описанные выше подготовления и разрешив необходимые зависимости в один клик с помощью pip
$ pip install -r requirements.txt
можно запустить скрипт как
$ python3 mymail_parser.py <ЧИСЛО_СКРОЛЛОВ>
где ЧИСЛО_СКРОЛЛОВ — количество раз, сколько будет прокручена вниз до конца лента результатов поиска (при каждой прокрутке вниз происходит подгрузка следующей порции результатов).
:warning: Иметь в виду:
- 1 скролл ≈ 8 email-адресов, однако точно сказать, чему равен 1 скролл, нельзя — количество валидных адресов, умещающихся на одной странице (в пределах одного скролла), зависит от самого поискового запроса, а также уменьшается с увеличением параметра
ЧИСЛО_СКРОЛЛОВ(особенности строения социальной сети). - Максимальное количество email-адресов, которое можно спарсить через поисковую форму Моего Мира таким способом, равно 450, дальше страница результатов просто не прокручивается (механизм безопасности № 2). Так как нельзя точно рассчитать, сколько скроллов для этого понадобится, рекомендуется указывать заведомо большее значение параметра
ЧИСЛО_СКРОЛЛОВ, например,100. При достижении конца страницы скрипт завершит свою работу. - Через определенное количество успешно совершённых поисковых запросов мейл.ру дает таймаут аккаунту на выполнение поиска в Моем Мире (механизм безопасности № 3). Таймаут временный (не более суток — время блокировки зависит от степени превышения допустимого лимита), пугаться не нужно, это не перманент. Маячком получения таймаута служит появление сообщения
[-] Failure: server timeout or bad search query.
Результат сохраняется в файл out.csv.