Перед нами скрипт, который собирает домены сайтов из выдачи поисковой системы 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("","");
// вывод в панель отладки
debug_mes("ссылки на сайты :
".$sites);
$sites=explode("
",$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."
";
}
// Quit
$app->quit();
После запуска этого скрипта в папке res появятся файлы с именами в виде ключевых слов,
в которых будут записаны урлы выдачи гугль по данным ключевым словам. Для того что бы скрипт работал быстрее можно отключить всё лишнее в настройках программы.
Картиники, js, active X, frame и т.д.
Скрипт написан 07.02.2012 в Human Emulator 4.4 Advanced.
На момент публикации статьи 08.02.2012 скрипт был рабочий.