Для работы скрипта требуется наличие аккаунта в сервисах онлайн телефонов sms-activate.ru или 5sim.net и установленный тор. По желанию по аналогии можно использовать и другие сервисы.
Логика: Скрипт переходит на сайт google.ru, после переходит оттуда на регистрацию и выполняет регистрацию с помощью сервисов онлайн телефонов sms-activate.ru или 5sim.net.
Все зарегистрированные аккаунты записываются в результирующий файл. Вместо прокси используется tor.
Скрипт состоит:
Запускаемый файл - reg_google.php.
В папке tools находится файл functions.php, в котором содержатся все основные функции скрипта.
В папке data файл last_ip.txt c последним используемым ip.
В папке res файл res.csv с аккаунтами в формате одна строка один аккаунт.
Работа скрипта по шагам:
1. Задаём ip, если такой уже использовали, перезапускаем TOR и следом программу и получаем новый IP.
2. Генерируем данные для аккаунта.
3. Заполняем все поля.
4. Получаем телефон с сервиса и подставляем его.
5. Вводим полученный код.
6. Заполняем остальные данные.
7. Ставим галочки и нажимаем кнопку Создать Аккаунт.
8. После это проверяем, если зашли в аккаунт, то пишем данные ip и аккаунта в файлы.
На что обратить внимание: Финальный код нажатия галочек работает не стабильно и может проскакивать, надо либо увеличить паузы между шагами либо отладить этот момент под ваши реалии.
Вот это место в коде.
$div->get_by_inner_text("Я принимаю Условия использования Google", true)->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); $div->get_by_inner_text("Я даю согласие на обработку своей информации в соответствии с приведенными выше условиями. Примечание. Подробнее о том, как используются данные, рассказано в Политике конфиденциальности.", true)->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); $span->click_by_inner_text("Создать аккаунт"); sleep($wt);
Плата за не использованные номера не снимается, но если вы заказали телефон и получили код, то плата снимается. Также нужно дожидаться отмены работы с номером телефона (вызов команды $smsactivate->set_status(8); ), если вы получаете номер и прерываете работу скрипта руками, то номер подвисает в сервисе, если вы подвесите так несколько номеров вы можете попасть в бан.
Разберём скрипт reg_google.php по частям.
Настройки.
/ ////////////////////// настройки ///////////////////// // sms active или 5sim.net $sms_key=''; // 0 - Россия, 1 - Украина, 2 - Казахстан, 3 - Китай, 4 - Филиппины, 5 - Мьянма, 6 - Индонезия, 7 - Малайзия, 8 - Кения, 10 - Вьетнам, 11 - Кыргызстан, 12 - США, 13 - Израиль, 14 - Гонконг, 15 - Польша, 16 - Англия, 17 - Мадагаскар, 18 - Конго, 19 - Нигерия, 20 - Макао, 21 - Египет, 22 - Индия, 23 - Ирландия, 24 - Камбоджа, 25 - Лаос, 26 - Гаити, 27 - Кот д'Ивуар, 28 - Гамбия, 29 - Сербия, 30 - Йемен, 31 - ЮАР, 32 - Румыния, 33 - Колумбия, 34 - Эстония, 35 - Азербайджан, 36 - Канада, 37 - Марокко, 38 - Гана, 39 - Аргентина, 40 - Узбекистан, 41 - Камерун, 42 - Чад, 43 - Германия, 44 - Литва, 45 - Хорватия, 46 - Швеция, 47 - Ирак, 48 - Нидерланды, 49 - Латвия, 50 - Австрия, 51 - Беларусь, 52 - Таиланд, 53 - Сауд. Аравия, 54 - Мексика, 55 - Тайвань, 56 - Испания, 57 - Иран, 58 - Алжир, 59 - Словения, 60 - Бангладеш, 61 - Сенегал, 62 - Турция, 63 - Чехия, 64 - Шри-Ланка, 65 - Перу, 66 - Пакистан, 67 - Новая Зеландия, 68 - Гвинея, 69 - Мали, 70 - Венесуэла, 71 - Эфиопия, 72 - Монголия, 73 - Бразилия, 74 - Афганистан, 75 - Уганда, 76 - Ангола, 77 - Кипр, 78 - Франция, 79 - Папуа-Новая Гвинея, 80 - Мозамбик, 81 - Непал, 82 - Бельгия, 83 - Болгария, 84 - Венгрия, 85 - Молдова, 86 - Италия, 87 - Парагвай, $country=1; // промежуток проверки получения кода $wt_code=15; // файл с последним ip $last_ip_file='data/last_ip.txt'; // задаём tor в качестве прокси $cur_proxy = "socks5://127.0.0.1:9150"; // путь к tor $path_tor='C:\\tor browser new\Tor Browser\Browser\firefox.exe'; // путь к файлу с результатами $path_res='res/res.csv'; // ожидаем на перезагрузку tor $wt_tor =15; // пауза между шагами $wt =3;
Перезапуск Tor и получение нового IP выполнено на основе скрипта перезапуска тора
Генерируем данные для формы:
// пол случайным образом $gnd=mt_rand(0,1); $sex = "woman"; // вставка имени и фамилии if ($gnd == 1) $sex = "man"; // сгенерировать имя $name = $submitter->generate_random_name("RU",$sex); // фамилия $LastName= $submitter->generate_random_second_name("RU",$sex); // год рождения $year=mt_rand(1970,2000); // для двойных имён убираем пробел $name=str_replace(' ','',$name); // получим email на основе имени и фамилии $email = rus2translit($name.$LastName); $email = strtolower($email).$year; // пароль сгенерировать $password = generate_password(mt_rand(8,10)); // строка с результатами $res_str = "$name;$LastName;$email;$password"; echo "$res_str<br>";
Заполнение полей до телефона:
// переходим на гугл $browser->navigate("https://google.ru"); sleep($wt); $anchor->click_by_href("https://accounts.google.com/Se", false); sleep($wt); // создём аккаунт $span->click_by_inner_text("Создать аккаунт"); sleep($wt); $div->get_by_inner_text("Для себя")->send_mouse_click(mt_rand(5,10),mt_rand(5,10)); sleep($wt); // ожидаем элемент //$h1->is_exist_by_inner_text("Создайте аккаунт Google", false); wait_on_element_by_text($h1,"Создайте аккаунт Google"); // заполняем поля формы // имя $input->set_focus_by_name("firstName"); $input->send_keyboard_input_by_name("firstName",$name, "20:40"); // фамилия $input->set_focus_by_name("lastName"); $input->send_keyboard_input_by_name("lastName",$LastName, "20:40"); // имя пользователя $input->set_focus_by_name("Username"); $input->send_keyboard_input_by_name("Username",$email, "20:40"); // пароль $input->set_focus_by_name("Passwd"); $input->send_keyboard_input_by_name("Passwd",$password , "20:40"); $input->set_focus_by_name("ConfirmPasswd"); $input->send_keyboard_input_by_name("ConfirmPasswd",$password , "20:40"); // нажимаем далее $span->click_by_inner_text("Далее"); sleep($wt); // $h1->click_by_inner_text("Подтвердите номер телефона", false); // загрузка страницы с вводом телефона $b_load=wait_on_element_by_text($h1,"Подтвердите номер телефона"); if(!$b_load) { echo 'Не перешли на страницу с вводом телефона<br>'; quit(); }
Работа с телефоном:
// заполняем телефон // получаем телефон из сервиса sms active $phone = get_phone($sms_key,$country,$wt_code); // получаем телефон из сервиса 5sim.net //$phone = get_phone($sms_key,$country,$wt_code,'http://sms-activate.api.5sim.net'); // проверка на телефон if($phone=='') { echo 'Не получили телефон из сервиса<br>'; quit(); } // вводим номер телефона $input->send_keyboard_input_by_attribute("id", "phoneNumberId", true,'+'.$phone, "20:40"); sleep(1); // нажимаем далее $span->click_by_inner_text("Далее"); sleep($wt); if($div->is_exist_by_inner_text("Этот номер нельзя использовать", false) || $div->is_exist_by_inner_text("Неизвестный формат.", false)) { echo "Этот номер $phone нельзя использовать<br>"; // сообщаем сервису что освобождаем номер $smsactivate->set_status(8); quit(); } // ожидаем код $code=wait_code(); if($code=='') { echo 'Не получили код из sms<br>'; quit(); } // вводим код полученный с сайта $input->set_focus_by_name("code"); $input->send_keyboard_input_by_name("code",$code, "20:40"); // нажимаем кнопку подтвердить $span->click_by_inner_text("Подтвердить"); sleep($wt);
Заполнение данных день месяц год рождения и пол:
// вводим поля $input->send_keyboard_input_by_attribute("id", "day", true,mt_rand(1,28), "20:40"); $lb=$listbox->get_by_id("month"); $lb->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); // получить месяц $month=mt_rand(1,12); echo $month; // выбрать for($ii=$month;$ii>0;$ii--) $keyboard->send_key(40, false); $keyboard->send_key(13, false); $input->send_keyboard_input_by_attribute("id", "year", true,$year, "20:40"); // выбор пола $gnd+=1; $lb_g=$listbox->get_by_id("gender"); $lb_g->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); for($ii=$sex;$ii>0;$ii--) $keyboard->send_key(40, false); $keyboard->send_key(13, false); sleep($wt); $span->click_by_inner_text("Далее", false); sleep($wt);
Остальные данные:
// загрузка страницы с вводом телефона $b_load=wait_on_element_by_text($h1,"Используйте номер телефона в с"); if(!$b_load) { echo 'Используйте номер телефона в с<br>'; quit(); } $btn->click_by_inner_text("Пропустить"); sleep($wt); // загрузка страницы с вводом телефона $b_load=wait_on_element_by_text($h1,"Конфиденциальность и Условия и"); if(!$b_load) { echo 'Конфиденциальность и Условия и<br>'; quit(); } // пока нет кнопки создать while(!$span->is_exist_by_inner_text("Создать аккаунт")) { $div->get_by_attribute("role","button")->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep(1); } $div->get_by_inner_text("Я принимаю Условия использования Google", true)->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); $div->get_by_inner_text("Я даю согласие на обработку своей информации в соответствии с приведенными выше условиями. Примечание. Подробнее о том, как используются данные, рассказано в Политике конфиденциальности.", true)->send_mouse_click(mt_rand(1,10),mt_rand(1,10)); sleep($wt); $span->click_by_inner_text("Создать аккаунт"); sleep($wt);
Сохраняем после проверки в файлы:
// проверка if($anchor->is_exist_by_attribute("title","$email@gmail.com", false)) { echo "зарегистрировали аккаунт с данными $res_str"; // запишем удачный ip $textfile->write_file($last_ip_file, $last_ip); // запишем результат в файл $textfile->write_file($path_res, $res_str."\r\n"); }
Скачать скрипт: