Предлагаем вашему вниманию скрипт сборщик DLE (DataLife Engine) сайтов. Этот скрипт написан на основе скрипта сборщика каталогов и демонстрирует как легко можно самом переделать сборщик под любые типы сайтов. Достаточно ввести правильный запрос в Google и выбрать нужные критерии для проверки движка сайта.
Теперь рассмотрим детальнее что именно отличает этот сборщик.
Первое это поисковый запрос. Он в скрипте выглядит так:
1 2 |
// задаём слово в поиск $input->set_value_by_name("q","index.php?do=register"); |
Страница регистрации в DLE сайтах вызывается следующим запросом — http://domen.com/index.php?do=register. Значит ищем сайты где есть такие страницы.
После того как мы нашли такие страницы в Google мы проверяем их. Скрипт переходит на найденные страницы и проверяет количество элементов ввода — раз это форма регистрации то их должно быть на странице не менее 4. Для этого используем следующий код:
1 2 3 |
// проверить что это форма заполнения $cnt = $input->get_count($frame=-1); if($cnt>=4){} |
Если на странице есть 4 и более поля ввода мы получаем текущий url страницы и перед тем как записывать в файл проверяем, что это именно та страница которая нам нужна:
1 2 3 4 5 6 7 8 9 10 |
// проверить что это форма заполнения $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) ; } |
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
$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) { // получим все ссылки на сайты заключённые в тэгах <cite> $sites=$webpage->get_body_inter_prefix_all("<cite>","</cite>"); $sites=explode("<br>",$sites); for($ii=0;$ii<count($sites);$ii++) { // переходим на сайт $site=str_replace("<b>","",trim($sites[$ii])); $site=str_replace("</b>","",$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 скрипт был рабочий.