Версия программы: Human Emulator Studio 7.0.44.
Логика: Есть два файла - keys.txt и titles.txt. Файл keys.txt содержит ключевые слова для поиска роликов в Youtube. Файл titles.txt содержит части заголовков роликов, в которые скрипт будет заходить и смотреть их. Формат файлов стандартный: одна строка один ключ или заголовок. После перехода на страницу ролика скрипт получает время ролика и находится на странице всё это время.
Что делает скрипт по шагам:
1. Получает поисковые ключи и заголовки из файлов в массивы
2. Переходит на сайт youtube.com
3. Если задано в настройках логинится в Ютуб
4. Вбивает случайный поисковый ключ из массива
5. Переходит в ролик, нажимая на случайный заголовок ролика из массива
6. Если задано в настройках и мы залогинины ставим Like ролику
7. Находимся на странице ролика столько сколько длится ролик
8. Возвращаемся на страницу выбора роликов
Код скрипта:
<?php /* ** // Наш сайт https://xn--80awbbeioodeq4h3a.xn--p1ai // Скрипт просмотр роликов в Youtube. // Обсудить скрипт или задать вопросу на форуме https://xn--80awbbeioodeq4h3a.xn--p1ai/forum/ // наш телеграмм канал: https://t.me/humanemulator // скрипт написан в версии Human Emulator Studio 7.0.44 ** */ $xhe_host = "127.0.0.1:7010"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // //////////////// настройки // логин ютуб $login=""; // пароль $pwd=""; // поисковый запрос в ютуб $akeys = file("data/keys.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // заголовки роликов, которые надо посмотреть $atitles = file("data/titles.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // // действия // логинится ли в ютуюб $do_login=false; // ставить ли like $do_like=true; // ///////////////////////// скрипт echo "переходим на ютуб <br>"; // переходим на ютуб $browser->navigate("http://www.youtube.com"); // заходим в аккаунт если надо if($do_login) { echo "выполняем логин в ютуб<br>"; // войти $anchor->click_by_href("ServiceLogin", false); // вводим email $input->send_keyboard_input_by_name("Email",$login, "20:40"); $input->send_keyboard_input_by_name("identifier",$login, "20:40"); // кликаем на кнопку Далее $button->click_by_name("signIn"); $span->click_by_inner_text("Далее"); // вводим пароль $input->send_keyboard_input_by_name("Passwd",$pwd, "20:40"); $input->send_keyboard_input_by_name("password",$pwd, "20:40"); // нажимаем на кнопку Войти $button->click_by_name("signIn"); $span->click_by_inner_text("Далее"); // если есть надпись Установите другой браузер if($h1->is_exist_by_inner_text("Установите другой браузер", false)) { // вернёмся в ютуб $anchor->click_by_attribute("id", "return-to-youtube"); } } // получить случайным образом запрос $rnd_search_text = trim($akeys[array_rand($akeys)]); // получить случайным образом текст заголовка куда кликать $rnd_title = trim($atitles[array_rand($atitles)]); echo "получили случайным образом запрос $rnd_search_text и заголовок ролика $rnd_title<br>"; // введём запрос $input->send_keyboard_input_by_name("search_query",$rnd_search_text."\n", "20:40"); sleep(1); // перейти в нужный ролик $anchor->click_by_attribute("title", $rnd_title, false); sleep(3); echo "проверка зашли ли на страницу ролика<br>"; if(strpos($h1->get_inner_text_by_number(0),$rnd_title)===false) { echo "ОШИБКА: не зашли на страницу ролика с названием $rnd_title<br>"; $app->quit(); } // нажимаем понравилось if($do_like && $do_login) { echo "ставим Like<br>"; $btn->click_by_attribute("aria-label", "Видео понравилось", false); } // ////////////////// получаем время ролика // время ролика $time = $div->get_inner_text_by_attribute("id", "overlays"); echo "текст для получения времени : ".$time."<br>"; // убираем лишний текст Текущее видео $time=trim(str_replace("Текущее видео","",$time)); // получить время в секундах $ar_time = explode(":",$time); // длина ролика в секундах $tm_sec = $ar_time[0]*60+$ar_time[1]; echo "длина ролика в секундах $tm_sec <br>"; // ждём пока закончится ролик sleep($tm_sec); // возвращаемся на предыдущую страницу $browser->go_back(); // Quit $app->quit(); ?>
скачать скрипт: