Предлагаем вашему вниманию скрипт сборщик DLE (DataLife Engine) сайтов. Этот скрипт написан на основе скрипта сборщика каталогов и демонстрирует как легко можно самом переделать сборщик под любые типы сайтов. Достаточно ввести правильный запрос в Google и выбрать нужные критерии для проверки движка сайта.
Теперь рассмотрим детальнее что именно отличает этот сборщик.
Первое это поисковый запрос. Он в скрипте выглядит так:
// задаём слово в поиск
$input->set_value_by_name("q","index.php?do=register");
Страница регистрации в DLE сайтах вызывается следующим запросом — http://domen.com/index.php?do=register. Значит ищем сайты где есть такие страницы.
После того как мы нашли такие страницы в Google мы проверяем их. Скрипт переходит на найденные страницы и проверяет количество элементов ввода — раз это форма регистрации то их должно быть на странице не менее 4. Для этого используем следующий код:
// проверить что это форма заполнения
$cnt = $input->get_count($frame=-1);
if($cnt>=4){}
Если на странице есть 4 и более поля ввода мы получаем текущий url страницы и перед тем как записывать в файл проверяем, что это именно та страница которая нам нужна:
// проверить что это форма заполнения
$cnt = $input->get_count($frame=-1);
if($cnt>=4)
{
// запишем ссылку на страницу на которой можно добавить сайт
$dmn = $webpage->get_location_url();
// добавить сайт в базу
if(str_isexists($dmn,"index.php?do=register"))
$textfile->add_string_to_file($file_res,trim($dmn)."\n",60) ;
}
Сам скрипт:
$xhe_host ="127.0.0.1:7010";
// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");
// /////////////////// настройки скрипта ////////////////////////////////////////////////
// путь к файлу с результатами
$file_res ="res/dle_sites.txt";
// глубина прохода в поисковые результаты
$cnt_pages = 10;
$crnt_page =1;
// режим отладки
$dbg=true;
// ///////////////// дополнительные модели //////////////////////////////////
// основные функции
require_once("functions.php");
// //////////////// скрипт //////////////////////////////////////////////////////////////
// задать время ожидания загрузки
$browser->set_wait_params(10,1);
// navigate to google
$browser->navigate("http://www.google.com");
// wait on browser
$browser->wait_for();
// задаём слово в поиск
$input->set_value_by_name("q","index.php?do=register");
$input->click_by_name("q");
// нажмём на поиск
$keyboard->send_key(13,true);
sleep(1);
// до тех пор пока есть ссылки с цифрами переходим
while(true)
{
// получим все ссылки на сайты заключённые в тэгах
$sites=$webpage->get_body_inter_prefix_all("","");
$sites=explode("
",$sites);
for($ii=0;$ii","",trim($sites[$ii]));
$site=str_replace("","",$site);
// вывод в панель отладки
debug_mes("ссылка на dle сайт : ".$site);
if($site=="")
continue;
// открыть и сделать активным новый браузер
$browser->set_count(2);
$browser->set_active_browser(1,true);
// перейдём на форму регистрации
$browser->navigate($site);
// проверить что это форма заполнения
$cnt = $input->get_count($frame=-1);
if($cnt>=4)
{
// запишем ссылку на страницу на которой можно добавить сайт
$dmn = $webpage->get_location_url();
// добавить сайт в базу
if(str_isexists($dmn,"index.php?do=register"))
$textfile->add_string_to_file($file_res,trim($dmn)."\n",60) ;
}
// закрываем и переходим обратно
$browser->set_active_browser(0,true);
$browser->close_all_tabs();
}
// не перешли на следующую страницу
if(!next_page())
break;
}
// удалить дубликаты
$textfile->dedupe($file_res,$file_res,60);
// Quit
$app->quit();
Скрипт написан 9.04.2012 в Human Emulator 4.4.17 Advanced.
На момент публикации статьи 11.04.2012 скрипт был рабочий.