Помогите переделать скрипт парсинга яндекса

Сбор и анализ всего что можно собрать из сети.
Ответить
Porsche
Сообщения: 4
Зарегистрирован: 30 авг 2018, 20:57

Помогите переделать скрипт парсинга яндекса

Сообщение Porsche » 30 авг 2018, 21:03

Всем привет!

Помогите переделать вот этот скрипт парсинга яндекса для сбора подсказок при вводе ключевых слов в поле поиска.

Заранее спасибо.

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Support » 30 авг 2018, 21:20

В какой версии программы запускаете скрипт?

Porsche
Сообщения: 4
Зарегистрирован: 30 авг 2018, 20:57

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Porsche » 30 авг 2018, 21:31

Support писал(а):
30 авг 2018, 21:20
В какой версии программы запускаете скрипт?
Пока пользуюсь Human Emulator Free.

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Support » 30 авг 2018, 21:57

Для Free скрипт сбора подсказок Яндекса будет выглядеть так :
<?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");

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

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

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

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

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

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

   $keyboard->send_input($ks);

   $all = $element->get_all_by_attribute('class','suggest2-item ');
  
   print_r($all->get_inner_text());

}

// Quit
$app->quit();
?>

ТО есть переделали ввод на ввод с клавиатуры, что бы показывались сами подсказки
	// зададим запрос
	//$input->set_value_by_name("text",$ks); 
  $input->set_focus_by_name("text");

   $keyboard->send_input($ks);
и собственно сам сбор выглядит как получение по части значения класса. Значение класса можно посмотреть в инспекторе элементов. Кликаем правой кнопкой мыши по интересующему нас элементу, в нашем случае это подсказки и выбираем пункт меню Посмотреть в инспекторе элементов.
$all = $element->get_all_by_attribute('class','suggest2-item ');
// вывод в панель отладки
print_r($all->get_inner_text());

ссылка на описание функции в документации


Результат работы скрипта:
Array
(
 [0] => купить ботинки в интернете
[1] => купить ботинки в интернете недорого
[2] => купить ботинки в интернете зимние
[3] => купить обувь в интернете
[4] => купить обувь в интернете недорого
[5] => купить обувь в интернете россия
[6] => купить обувь в интернете недорого украина
[7] => где купить обувь в интернете
[8] => купить обувь в интернете беларусь
[9] => купить обувь в интернете с примеркой
)
Array
(
 [0] => интернет магазин обуви
[1] => интернет магазин обуви с доставкой по россии
[2] => интернет магазин обуви мужской
[3] => интернет-магазин обуви с бесплатной доставкой по россии
[4] => интернет магазин обуви с доставкой по россии дешево
[5] => интернет магазин обуви франческо донни распродажа
[6] => интернет магазин обуви рикер распродажа
[7] => интернет магазин обуви дешево
[8] => интернет магазин обуви кари
[9] => интернет магазин обуви рандеву распродажа женской обуви
)

Porsche
Сообщения: 4
Зарегистрирован: 30 авг 2018, 20:57

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Porsche » 30 авг 2018, 22:13

Спасибо! А как это теперь сохранить в файл?

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Support » 30 авг 2018, 22:22

Porsche писал(а):
30 авг 2018, 22:13
Спасибо! А как это теперь сохранить в файл?
// кол-во
for($ii=0;$ii<count($keys);$ii++)
{
	// получить запрос
	$ks = trim($keys[$ii]);

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

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

   $keyboard->send_input($ks);

   $all = $element->get_all_by_attribute('class','suggest2-item ');
  
   print_r($all->get_inner_text());
   // преобразуем массив в строку
   $sRes= implode("\r\n", $all->get_inner_text());
   // запишем строку в файл 1.txt 
   $textfile->add_string_to_file('1.txt',$sRes);
}

Porsche
Сообщения: 4
Зарегистрирован: 30 авг 2018, 20:57

Re: Помогите переделать скрипт парсинга яндекса

Сообщение Porsche » 30 авг 2018, 22:24

Спасибо за быстрые ответы!

Ответить