Предлагаем вашему вниманию скрипт, который проверяет ссылки на сайте. Скрипт идёт по всем страницам сайта и прокликивает все ссылки в том числе и ссылки загрузки файлов. Для более быстрой работы скрипта рекомендуется отключить картинки и другие настройки браузера, запретить показывать сообщения и тд.
Если на сайте есть ссылки с авторизацией можно использовать функцию $browser->set_default_authorization($login,$password);
Используя функции: $browser->disable_download_file_dialog($enable); и $browser->set_default_download($folder); можно проверить скачиваются ли все файлы с сайта.
В результате работы скрипта по заданному пути появляется файл, в котором записываются данные по битым ссылкам в следующем формате:
страница где находиться битая ссылка;href битой ссылки;текст битой ссылки
Пример файла с результатами:
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/171;Файл
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/185;Скрипты
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/205;Справка
Настройки скрипта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ////////// настройки скрипта/////////////////// // проверяемый сайт $site="http://humanemulator.net/"; // путь к файлу с плохими ссыками $path_bad_links="./res/bad_links.txt"; // проверочная строка, по которой мы определяем страницу 404 $error_404="Error 404: File Not Found"; // фильтр по словам в href ссылок // задавать то что не нужно собирать через , // например: /forum/,/objects/, и т.д. $filter="/forum/"; // режим отладки - для вывода сообщений в панель отладки $dbg=true; |
Сам скрипт:
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 84 85 86 87 88 89 90 |
/* ** // Наш сайт http://x-scripts.com // Скрипт проверки битых ссылок на сайте. // по любым вопросам касающимся скрипта // можно написать нам на мыло order@x-scripts.com ** */ $xhe_host ="127.0.0.1:7010"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // ////////// настройки скрипта/////////////////// // проверяемый сайт $site="http://humanemulator.net/"; // путь к файлу с плохими ссыками $path_bad_links="./res/bad_links.txt"; // проверочная строка $error_404="Error 404: File Not Found"; // фильтр по словам в href // задавать через , $filter="/forum/"; // режим отладки $dbg=true; // /////////////////// дополнительные модули ///////////////////// // функции require_once("functions.php"); // ///////////////////// script ///////////////////////////////////////////////////////// debug_mess(date("\[ m.d.y H:i:s\] ")." скрипт запустили"); // добавим главную страницу в массив $pgl=new PageLinks(); $pgl->page=$site; $pgl->link_info=$site; $a_links=array($pgl); // чистим данные $file_os->delete($path_bad_links); // собираем и проверяем for($k=0;$k<count($a_links);$k++) { // получаем страницу $pg=$a_links[$k]->page; // проверяем фильтры if(!check_filter($pg)) continue; // переходим на сайт $browser->navigate($pg); // проверить на 404 if(check_page_404($a_links[$k]->link_info)) continue; // получим все href-ы на странице $hrefs=$anchor->get_all_hrefs(); // преобразуем в массив $hrefs=explode("<br>",$hrefs); // пройтись по всем hrefs for($ii=0; $ii<count($hrefs); $ii++) { $pg_href=trim($hrefs[$ii]); // проверяем внутренняя ли ссылка if(strpos($pg_href,$site)===false) continue; // строка для получения текста ссылки $pg_href1=str_replace($site,"",$pg_href); // строка для запилси в файл с результатами $str="$pg;$pg_href;".$anchor->get_inner_text_by_href($pg_href1,false); // если ещё не проверяли проверим // добавим проверяемую страницу в массив if(!is_a_exists($pg_href)) { // создадим объект с данными по ссылке $pgl=new PageLinks(); $pgl->page=$pg_href; $pgl->link_info=$str; $a_links[]=$pgl; } } } debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу<br>"); // Quit $app->quit(); |
Скрипт написан 28.08.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 28.08.2012 скрипт был рабочий.
Этот скрипт работает в Demo и Free версиях программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo