Как использовать unix linkchecker для тщательной проверки любого сайта

Originally posted at robinwinslow.uk/linkchecker

Если вам нужен инструмент для проверки вашего сайта на наличие 404 или 500 ошибок, существуют онлайн инструменты (например, The W3C’s online link checker), плагины для браузеров Firefox и Chrome, или программы для windows, такие как Xenu’s Link Sleuth.

Программа проверки ссылок в ОС unix

Сегодня я нашел программу linkchecker — она доступна как программа командной строки unix (хотя у нее также есть графический или веб-интерфейс).

Установка инструмента командной строки

Вы можете установить инструмент командной строки просто на Ubuntu:

sudo apt-get install linkchecker
Войти в полноэкранный режим Выйти из полноэкранного режима

Использование linkchecker

Как и у любой хорошей программы командной строки, у нее есть страница с руководством, но читать его может быть немного сложно, поэтому ниже я привожу несколько сокращений.

По умолчанию linkchecker выдает много предупреждений. Он будет предупреждать вас о любых ссылках, которые приводят к 301, а также обо всех 404, таймаутах и т.д., а также предоставлять вам обновления статуса каждую секунду или около того.

Robots.txt

linkchecker не будет просматривать сайты, запрещенные в файле robots.txt, и нет способа отменить это. Решение — изменить файл robots.txt, чтобы разрешить linkchecker:

User-Agent: *
Disallow: /
User-Agent: LinkChecker
Allow: /
Войти в полноэкранный режим Выход из полноэкранного режима

Перенаправление вывода

linkchecker, похоже, ожидает, что вы перенаправите его вывод в файл. Если вы сделаете это, он будет помещать в файл только фактические предупреждения и ошибки и сообщать о состоянии в командную строку:

$ linkchecker http://example.com > siteerrors.log
35 URLs active,     0 URLs queued, 13873 URLs checked, runtime 1 hour, 51 minutes
Войти в полноэкранный режим Выход из полноэкранного режима

Таймаут

Если вы тестируете разрабатываемый сайт, вполне вероятно, что он будет довольно медленно отвечать на запросы, и linkchecker может испытывать много таймаутов, поэтому вы, вероятно, захотите увеличить время таймаута:

$ linkchecker --timeout=300 http://example.com > siteerrors.log
Войти в полноэкранный режим Выйти из полноэкранного режима

Игнорировать предупреждения

Не знаю, как вы, но сайты, на которых я работаю, содержат множество ошибок. Я хочу найти 404 и 50*, прежде чем беспокоиться о предупреждениях перенаправления.

$ linkchecker --timeout=300 --no-warnings http://example.com > siteerrors.log
Войти в полноэкранный режим Выход из полноэкранного режима

Тип вывода

Вывод text по умолчанию довольно многословен. Для удобства чтения вы, вероятно, захотите выводить логи в формате CSV:

$ linkchecker --timeout=300 --no-warnings -ocsv http://example.com > siteerrors.csv
Войти в полноэкранный режим Выйти из полноэкранного режима

Другие параметры

Если вы нашли и исправили все основные ошибки 404 и 50*, возможно, вам захочется снова включить предупреждения (удалить --no-warnings) и начать использовать --check-html и --check-css.

Проверка веб-сайтов с помощью OpenID (обновление 2014-04-17)

Сегодня мне пришлось использовать linkchecker для проверки сайта, который требовал аутентификации с помощью системы OpenID компании Canonical. В этом мне очень помог ответ на StackOverflow.

Сначала я зашел на сайт как обычно с помощью Chromium, открыл окно консоли и сбросил все файлы cookie, которые были установлены на этом сайте:

> document.cookie
"__utmc="111111111"; pysid=1e53e0a04bf8e953c9156ea841e41157;"
Войти в полноэкранный режим Выход из полноэкранного режима

Затем я сохранил эти куки в cookies.txt в формате, понятном для linkchecker:

Host:example.com
Set-cookie: __utmc="111111111"
Set-cookie: pysid="1e53e0a04bf8e953c9156ea841e41157"
Войти в полноэкранный режим Выход из полноэкранного режима

И включил его в мою команду linkchecker с --cookiefile:

linkchecker --cookiefile=cookies.txt --timeout=300 --no-warnings -ocsv http://example.com > siteerrors.csv
Войти в полноэкранный режим Выйти из полноэкранного режима

Используйте это!

Если вы работаете над веб-сайтом сколько-нибудь значительного размера, то почти наверняка там есть десятки битых ссылок и других ошибок. Программы проверки ссылок пройдут по всему сайту, проверяя каждую ссылку на наличие ошибок.

Проверка ссылок на вашем сайте может показаться очевидной, но, по моему опыту, почти ни одна команда разработчиков не делает этого регулярно.

Вы вполне можете использовать linkchecker для автоматической проверки ссылок! Я еще не реализовал это, но постараюсь сообщить вам, когда сделаю.

Оцените статью
devanswers.ru
Добавить комментарий