Скрипт разбора поиcковой выдачи Google

Перед нами скрипт, который собирает домены сайтов из выдачи поисковой системы google по заданным ключевым словам. Причём скрипт разбирает выдачу,
разбирая страницу и получая данные из тэгов cite. После этого берётся содержимое полученного массива ссылок и скрипт переходит на каждую ссылку из массива
и уже после перехода получает домен.

На вход скрипт принимает ключевые слова, которые заданны в текстовом файле words.txt в формате:
лучшее кино года
народ и деньги
xweb human emulator
скрипты и тесты
скрипты xhe
хлеба и зрелищ
музыка снов

Скрипт выглядит следующим образом:

$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("words.txt");

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

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

// //////////////////////////////// скрипт ////////////////////////////////
// пройдёмся по всем ключевым словам
for($aa=0;$aacount($keys);$aa++)
{
     // получим ключевое слово
     $key = trim($keys[$aa]);

     // navigate to google
    $browser->navigate("http://www.google.com");
    // wait on browser
    $browser->wait_for();
    // задаём слово в поиск
    $input->set_value_by_name("q",$key);
    //$input->click_by_atribute("name","q",true);
    sleep(2);

    // нажмём на поиск
    $button->set_focus_by_name(\'btnG\');
    $button->click_by_name(\'btnG\');
    $browser->wait_for();
    sleep(2);
  
// номер ссылки по которой будем кликать
$kk=2;
// до тех пор пока есть ссылки с цифрами переходим
while($anchor->click_by_inner_text($kk,true))
{
    $browser->wait_for();
    // проверка глубины прохода в поисковые результаты 
    if($kk>$cnt_pages)
    {
           // вывод в панель отладки
           debug_mes("прошли $cnt_pages страниц с поисковыми результатами");
           break;
    }
    // получим все ссылки на сайты заключённые в тэгах cite>
    $sites=$webpage->get_body_inter_prefix_all("<cite>","</cite>");

    // вывод в панель отладки
    debug_mes("ссылки на сайты :<br>".$sites);

    $sites=explode("<br>",$sites);
    for($ii=0;$iicount($sites);$ii++)
    {        
             // открыть и сделать активным новый браузер
             $browser->set_count(2);
             $browser->set_active_browser(1,true);
              // переходим на сайт
              $browser->navigate($sites[$ii]);
              // wait on browser
              $browser->wait_for();
              // запишем домен на который перешли
              $dmn = $webpage->get_domain();
              // если домен не пустой запишем его папку res в текстовый файл
              // название файла ключевое слово 
              if($dmn!="")
                 $textfile->add_string_to_file("./res/".$key.".txt",$dmn."\n",60) ;
             
            // закрываем и переходим обратно
            $browser->close_all_tabs();
            $browser->set_active_browser(0,true);

    }
    $kk++;
}
}
// ////////////////////////////// дополнительные модули ///////
// выдать сообщение в панель отладки
function  debug_mes($mess)
{
   global $dbg;
   // отладочные сообщения
   if($dbg)
      echo $mess."<br>";
}

// Quit
$app->quit();

После запуска этого скрипта в папке res появятся файлы с именами в виде ключевых слов,
в которых будут записаны урлы выдачи гугль по данным ключевым словам. Для того что бы скрипт работал быстрее можно отключить всё лишнее в настройках программы.
Картиники, js, active X, frame и т.д.

Скрипт написан 07.02.2012 в Human Emulator 4.4 Advanced.
На момент публикации статьи 08.02.2012 скрипт был рабочий.

скачать скрипт