scripts//prodvigenie_04_2026//1&1
/scripts//prodvigenie_04_2026//1&1
Содержимое папки
📁 Папок: 0 | 📄 Файлов: 7
с поиска google.php
<?php
/**
* Скрипт для парсинга результатов поиска Google с последующим переходом на найденные сайты
*
* Алгоритм работы:
* 1. Чтение поисковых запросов из text.txt
* 2. Поиск по синониму в Google
* 3. Очистка и поиск по основному запросу
* 4. Извлечение URL из результатов поиска
* 5. Исключение запрещенных сайтов
* 6. Переход на случайные сайты из результатов
*/
// ==================== НАСТРОЙКА ХОСТА ====================
$xhe_host = "127.0.0.1:7011";
// ==================== ПОДКЛЮЧЕНИЕ ФАЙЛОВ ====================
require("../../../Templates/init.php");
require_once("functions.php");
// ==================== НАСТРОЙКИ СКРИПТА ====================
$bUTF8Ver = true; // Использовать UTF-8
$PHP_Use_Trought_Shell = true; // Разрешить выполнение через shell
$Search = "google.com"; // Поисковая система
$pr_s = 'ipgroup.by'; // Основной сайт (не используется далее)
$no_site = $pr_s . " ozon.ru rosseti.ru"; // Сайты для исключения из результатов
/**
* Функция ожидания полной загрузки страницы
*
* @param object $browser Объект браузера
* @param int $timeout Таймаут ожидания в секундах
* @return bool Успешность загрузки
*/
function waitForPageLoad($browser, $timeout = 15) {
$start = time();
while (time() - $start < $timeout) {
$url = $browser->get_url();
if ($url != "about:blank" && !empty($url) && $browser->is_loaded()) {
return true;
}
usleep(500000); // Пауза 0.5 секунды
}
return false;
}
// ==================== НАСТРОЙКА БРАУЗЕРА ====================
$browser->close_all_tabs();
usleep(5000);
$browser->navigate('about:blank');
$browser->add_tab();
// ==================== ЧТЕНИЕ ФАЙЛА С ЗАПРОСАМИ ====================
$wordArray = array();
$file = fopen('text.txt', 'r');
if ($file) {
// Построчное чтение файла
while (($line = fgets($file)) !== false) {
$line = trim($line);
if (!empty($line)) {
$wordArray[] = $line;
}
}
fclose($file);
} else {
echo "Ошибка: не удалось открыть text.txt\n";
$app->quit();
exit;
}
// Проверка, что файл не пуст
if (empty($wordArray)) {
echo "Ошибка: файл пуст\n";
$app->quit();
exit;
}
// Выбираем случайную строку из файла
$random_key = array_rand($wordArray);
$random_string = $wordArray[$random_key];
// Разбиваем строку на основной запрос и синоним (формат: "запрос,синоним")
$words = explode(',', $random_string);
if (count($words) < 2) {
echo "Ошибка: неверный формат строки. Ожидается: 'запрос,синоним'\n";
$app->quit();
exit;
}
$findtext = trim($words[0]); // Основной поисковый запрос
$sinonim = trim($words[1]); // Синоним для первого поиска
// ==================== ФОРМИРОВАНИЕ СПИСКА ЗАПРЕЩЕННЫХ САЙТОВ ====================
// Регулярное выражение для извлечения доменов из URL
$pattern = '/(?:https?:\/\/)?(?:www\.)?([а-яА-Яa-zA-Z0-9.-]+)\.(?:[а-яА-Яa-zA-Z]{2,6})/';
// Разбиваем строку с запрещенными сайтами в массив
$no_site = preg_split("/[\s,]+/", $no_site);
$no_Urls = array();
for ($l = 0; $l < count($no_site); $l++) {
if (preg_match($pattern, $no_site[$l], $matches)) {
$no_Urls[] = mb_strtolower(removePrefixes($matches[0]));
}
}
// ==================== ПЕРВЫЙ ПОИСК (ПО СИНОНИМУ) ====================
// Переход на Google
$browser->navigate($Search, $use_cache = true, $use_wait = true);
// Ввод синонима в поле поиска
$textarea->send_keyboard_input_by_name("q", $sinonim . " ", "20:40");
$keyboard->key(13); // Enter для отправки запроса
sleep(1);
// Плавная прокрутка вместо резких PageDown/End
for ($scrollStep = 0; $scrollStep < 20; $scrollStep++) {
$keyboard->key(34); // Next (мягкая прокрутка)
usleep(50000); // 50ms между шагами
}
sleep(1);
// Клик для копирования (координаты привязаны к разрешению экрана)
$mouse->click_to_screen(552, 833);
usleep(50000);
usleep(50000);
// ==================== ВТОРОЙ ПОИСК (ПО ОСНОВНОМУ ЗАПРОСУ) ====================
$browser->set_active_browser(0, true); // Переход на первую вкладку
usleep(50000);
$browser->set_active_browser(1, true); // Переход на вторую вкладку
usleep(1000000);
$textarea->set_value_by_name("q", ""); // Очистка поля поиска
sleep(2);
// Ввод основного запроса
$textarea->send_keyboard_input_by_name("q", $findtext, "20:40");
$keyboard->key(13); // Enter
sleep(1);
// Прокрутка результатов
$keyboard->key(34); // Page Down
sleep(1);
$keyboard->key(34); // Page Down
sleep(1);
$keyboard->key(38); // Page Up
sleep(1);
$keyboard->key(38); // Page Up
sleep(1);
// ==================== ИЗВЛЕЧЕНИЕ URL ИЗ РЕЗУЛЬТАТОВ ПОИСКА ====================
// Извлечение блоков с результатами поиска
$sites = $webpage->get_body_inter_prefix_all('<cite', '</span></cite></div></div></div></div><div', true);
$sites = explode("<br>", $sites);
$Urls = array();
// Проверка, что результаты найдены
if (empty($sites) || count($sites) < 2) {
echo "Массив пуст. Обновляем страницу и пробуем снова...\n";
$browser->refresh();
sleep(2);
// Повторная прокрутка
$keyboard->key(34);
sleep(1);
$keyboard->key(34);
sleep(1);
$keyboard->key(38);
sleep(1);
// Повторное извлечение результатов
$sites = $webpage->get_body_inter_prefix_all('<cite', '</span></cite></div></div></div></div><div', true);
$sites = explode("<br>", $sites);
} else {
echo "Массив не пуст\n";
}
// Извлечение доменов из результатов
for ($l = 0; $l < count($sites); $l++) {
if (preg_match($pattern, $sites[$l], $matches)) {
$Urls[] = mb_strtolower(removePrefixes($matches[0]));
}
}
// Удаление дубликатов
$Urls = array_unique($Urls);
$Urls = array_values($Urls);
// Исключение запрещенных сайтов
$final_result = array_diff($Urls, $no_Urls);
$final_result = array_values($final_result);
// Вывод итогового списка сайтов
print_r($final_result);
// ==================== ПЕРЕХОД НА СЛУЧАЙНЫЕ САЙТЫ ====================
// Переход на первый сайт из результатов
$anchor->set_focus_by_inner_text($final_result[0], false);
sleep(1);
$keyboard->key(13); // Enter для перехода
sleep(2);
$browser->wait(0);
sleep(2);
$mouse->click_to_screen(552, 833); // Копирование
usleep(50000);
usleep(50000);
// Закрытие вкладки, если открылась новая
if ($browser->get_active_browser() == 2) {
$browser->close();
}
// Переход на второй сайт из результатов
$anchor->set_focus_by_inner_text($final_result[1], false);
sleep(1);
$keyboard->key(13);
sleep(2);
$browser->wait(0);
sleep(2);
$mouse->click_to_screen(552, 833);
usleep(50000);
usleep(50000);
if ($browser->get_active_browser() == 2) {
$browser->close();
}
// ==================== РАБОТА С ВНУТРЕННИМИ ССЫЛКАМИ ====================
// Подключение дополнительного файла обработки, если существует
if (file_exists("google_search.php")) {
require_once("google_search.php");
} else {
echo "Файл google_search.php не найден\n";
}
if (file_exists("work_with_site.php")) {
require_once("work_with_site.php");
} else {
echo "Файл work_with_site.php не найден\n";
}
$browser->close_all_tabs();
$app->quit();
?>