СКРИПТ: Парсер выдачи Яндекс поиска

Сбор и анализ всего что можно собрать из сети.
Ответить
Аватара пользователя
XwebDeveloper
Сообщения: 51
Зарегистрирован: 13 ноя 2017, 12:53

СКРИПТ: Парсер выдачи Яндекс поиска

Сообщение XwebDeveloper » 06 мар 2020, 13:03

Парсер выдачи Яндекс поиска по ключевым запросам.

Версия программы: Human Emulator Studio 7.0.45.

Браузер: Chromium и Firefox.

Логика: Получаем поисковые запросы из файла. Вводим их в поиск Яндекса и разбираем выдачу на заданную глубину в файл с именем запроса.

Скрипт состоит:
Запускаемый файл parser_yandex.php. В файле functions.php прописаны подключаемые команды.
В папку res записываются файлы с результатами разбора. Имя файла ключевой запрос.txt, содержимое одна строка один url из выдачи.
В папке data лежит файл с запросами для поиска keys.txt в формате одна строка один запрос.

Скачать скрипт:
parser_yandex.zip
(10.54 КБ) 105 скачиваний
.

Также скрипт при установке добавлен в программу.

Настройки:
// //////////////////////// настройки скрипта /////////////////////////
// файл с запросами для скрипта
// одна строка один запрос
$keys = file("data/keys.txt");
// папка с результатами
$path_to_res = $debug->get_cur_script_folder().'res\\';

// глубина прохода в поисковые результаты
// если задать -1 скрипт будет проходить все
// страницы выдачи яндекса
$cnt_pages = 10;
// текущая страница
$crnt_page =1; 

// скрипт работает в режим отладки
// во включенном режиме  отладки
// логи работы скрипта сохраняются в файл dbg.txt
// в папке со скриптом
$dbg = true;

Скрипт:
<?php

$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");

// //////////////////////// настройки скрипта /////////////////////////
// файл с данными для скрипта
$keys = file("data/keys.txt");
// папка с результатами
$path_to_res = $debug->get_cur_script_folder().'res\\';

// глубина прохода в поисковые результаты
$cnt_pages = 10;
// текущая страница
$crnt_page =1; 

// скрипт работает в режим отладки
$dbg = true;

// //////////////////////// дополнительные модули ///////////////
// функции 
require_once("functions.php");

// /////////////////////// скрипт //////////////////////////////////////////

debug_mess ("скрипт запустили");

// кол-во
for($ii=0;$ii<count($keys);$ii++)
{
	// получить запрос
	$ks = trim($keys[$ii]);
	// текущая страница
	$crnt_page =1; 

	// перейти на yandex	
	$browser->navigate("yandex.ru");

	// зададим запрос
	$input->set_value_by_name("text",$ks);

	// найти
	$button->click_by_inner_text("Найти");
	$span->click_by_inner_text("Найти");


	// ждём
	sleep(1);

	while(true)
	{
		// получить по префиксам все ссылки в виде одной строки разделённой <br> 
		$sites = $webpage->get_body_inter_prefix_all("path__item","</a>",true);
		// разделить на массив, используя для разделения <br>
		$sites = explode("<br>",$sites);
		debug_mess("count: ".count($sites));

		// пройдёмся по всем полученным 
		for($rw=0;$rw<count($sites);$rw++)
		{
			if(trim($sites[$rw])=="")
			continue; 
			// вывести ссылку в панель отладки 
			$site_link = get_string($sites[$rw],"href=\"","\" ");
			debug_mess("ссылка на сайт ".trim($site_link));

			// debug_mess("путь к файлу : ".$path_to_res.$ks.".txt");

			// записываем результат в файл
			$textfile->add_string_to_file($path_to_res.$ks.".txt", trim($site_link)."\r\n", 60);
		}

		// не перешли на следующую страницу 
		if(!next_page($crnt_page)) 
			break;
	}
}

debug_mess ("скрипт закончил свою работу");

// Quit
$app->quit();
?>
Запрос на создание скриптов viewforum.php?f=61

Ответить