СКРИПТ: Парсер выдачи mail.ru

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

СКРИПТ: Парсер выдачи mail.ru

Сообщение XwebDeveloper » 01 июн 2020, 15:09

Сборщик ссылок на сайты из поисковой выдачи Mail.ru поиска по ключевым запросам.

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

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

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

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

Скачать скрипт:
parser_mailru.7z
(4.09 КБ) 76 скачиваний

Настройки скрипта:
// файл с данными для скрипта
$keys = file("data/keys.txt");

// папка с результатами
$path_to_res = $debug->get_cur_script_folder().'res\\';

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

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

Сам скрипт:
// /////////////////////// скрипт ///////////////////////////////////////////
// кол-во
for($ii=0;$ii<count($keys);$ii++)
{
	// получить запрос
	$key = trim($keys[$ii]);

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

	$input->send_keyboard_input_by_name("q",$key."\n", "20:40");

	// ждём
	sleep(1);
	// обнулим перед следующим проходом
	$crnt_page=1;

   while(true)
   {
		// получим все ссылки на сайты заключённые в префиксах
		$sites=$webpage->get_body_inter_prefix_all('class="light-link"',"data-url");
		// получим массив ссылок из строки 
		$sites=explode("<br>",$sites);

                // print_r($sites);
	        // пройдёмся по всем полученным ссылкам
		for($i=0;$i<count($sites);$i++)
		{        
			// переходим на сайт
			$site=get_string(trim($sites[$i]),"href=\"","\"");

			if($site=="")
				continue;
			// вывод в панель отладки
			debug_mess("ссылка на сайт : ".$site);
			debug_mess("путь к файлу : ".$path_to_res.$key.".txt");

			// записываем результат в файл
			$textfile->add_string_to_file($path_to_res.$key.".txt", trim($site)."\r\n", 60);
		}
      
		 // не перешли на следующую страницу 
		if(!next_page($crnt_page)) 
		  break;
  }
}

Если скрипт не работает надо проверять префиксы вот в этом коде разбора выдачи аналогично как это описано в парсере яндекса:

// получим все ссылки на сайты заключённые в префиксах
$sites=$webpage->get_body_inter_prefix_all('class="light-link"',"data-url");		
Запрос на создание скриптов viewforum.php?f=61

dimerm
Сообщения: 244
Зарегистрирован: 02 май 2013, 10:36

Re: СКРИПТ: Парсер выдачи mail.ru

Сообщение dimerm » 03 июн 2020, 23:13

Шикардос, спасибо оптом за все парсеры!

Ответить