Скрипт регистратор мыла на примере mail.ru. Часть 2.

Итак, из предыдущей статьи у нас есть следующий скрипт, который регистрирует один аккаунт за один запуск скрипта:

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

Начнём с прокси. Допустим у нас есть какой то файл с прокси proxy.txt, который лежит в той же папке что и скрипт. Формат файла следующий:

175.145.221.223:3128
202.53.255.68:3128
196.214.70.60:80
180.242.62.150:8088
95.159.29.116:80
186.193.99.222:3128

Добавим в скрипт код для получения данных из файла с проксями в массив $proxies= file(«proxy.txt»); и сразу же создадим цикл, который будет основан на количестве проксей — то есть мы будем регистрировать столько же аккаунтов сколько у нас рабочих проксей в файле, для этого добавим следующий код:

Примечание: как работать с файлами в XHE описано в статье работа с файлами. Как организовывать циклы описано в статье работа с циклами

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

Теперь добавим проверку и запись удачно зарегистрированного аккаунта в файл. Для записи в файл будем использовать функцию объекта для работы c текстовыми
файлами $textfile->add_string_to_file. Код в скрипте будет $textfile->add_string_to_file($res_file,»$mail_login;$pwd\n»);, где $res_file переменная, которая настраивается в начале скрипта $res_file = «mail_accs.txt»;, а «$mail_login;$pwd\n» это записываемая строка с данными в файл.

Теперь нужно добавить проверку удачной регистрации нового аккаунта. Сразу после удачной регистрации открывается ящик и в верхнем правом углу отображается аккаунт под которым мы зашли. Вот на наличие его на странице мы и будем проверять. Если такая строка есть значит зашли в аккаунт, а значит мы его зарегистрировали. Простой анализ страницы показал, что это span элемент и к тому же с id

. Это нам даёт возможность использовать функцию объекта $element->get_element_innerText_by_id следующим образом:

Теперь осталась добавить проверку через оператор if. в Результате мы получили:

Примечание: команда echo служит для вывода информации в панель отладки.

Теперь наш скрипт выглядит следующим образом:

Если запустить этот скрипт то у нас возникнут проблемы при регистрации второго и последующих аккаунтов так как прежде чем регистрировать новый аккаунт желательно выйти из последнего зареганного аккаунта. К тому же нам нужно ещё менять данные браузера, чистить кэш и менять user-agent строку, можно менять размер браузера и т.д..

Как показала практика работы с хуманом наилучший результат по анонимности и работы с памятью достигается при использовании закладок браузера и последующем их закрытии. Для этого в начало цикла добавим следующий код:

Так же до цикла делаем переход основного браузера на пустую страницу: $browser->navigate(‘about:blank’);

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

В итоге наш скрипт стал:

Теперь добавим работу с user-agent строкой. Для этого у нас есть файл user-agents.txt, который содержит данные в следующем формате:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; (R1 1.5); .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2; Windows-Media-Player/10.00.00.3990)

По аналогии с прокси получим данные из файла в массив добавим в начало скрипта следующий код:
$useragents = file(«useragent.txt»); Задавать эти строки мы будем случайным образом сразу после того как делаем активным 1 браузер, используя следующий код: $browser->set_user_agent($useragents[rand(0,count($useragents)-1)]);, где ($useragents[rand(0,count($useragents)-1)] это случайный элемент массива от 0 до количества элементов в массиве-1.

В конце скрипта перед $app->quit(); добавим код отключения прокси: $browser->disable_proxy(«all connections»);

Теперь наш скрипт имеет вид:

Производительность скрипта очень сильно зависит от скорости и качества используемых прокси.
Скрипт написан 18.01.2012 в Human Emulator 4.2 Advanced.
На момент публикации статьи 23.01.2012 скрипт был рабочий.

скачать скрипт