2008-09-15 3 views
39

Какие методы или инструменты рекомендуются для поиска неработающих ссылок на веб-сайте?Как найти неработающие ссылки на сайте

У меня есть доступ к лог-файлам, поэтому можно было бы разобрать эти 404 ошибки, но хотелось бы, чтобы что-то автоматическое, которое будет следовать (или пытаться следовать) всем ссылкам на сайте.

+1

Существует также [HTTrack] (http://www.httrack.com/), который может хорошо справиться с этой задачей. – 2014-05-26 00:30:26

+0

Если вы заинтересованы в поиске мертвых ссылок, в том числе в случае, если идентификатор фрагмента находится в режиме реального времени, рассмотрите https://github.com/gajus/deadlink. – Gajus 2014-11-02 13:03:55

+0

@DaviddCeFreitas: Помогите создать ответ, чтобы мы могли видеть, как именно мы можем использовать httrack для поиска мертвых ссылок? – 2015-01-10 14:19:44

ответ

35

См. LinkChecker для Firefox.

Для Mac OS есть инструмент Integrity, который может проверять URL-адреса для неработающих ссылок.

Для Windows есть Xenu's Link Sleuth.

+3

Ссылка Xenu Sleuth выглядит только как билет. – 2008-09-15 18:45:55

+0

Целостность потрясающая! Спасибо, что поделился. – 2013-04-12 19:23:15

0

Лучший способ создать небольшой бот, который проходит по всему сайту и записывает результат. Я сделал это, чтобы проверить свои сайты перед развертыванием, и он работает очень хорошо.

2

Либо использовать инструмент, который анализирует лог-файлы и дает вам отчет «Неработающие ссылки» (например, Analog или Google Webmaster Tools), или запустить инструмент, который пауки ваш веб-сайт и отчеты неработающие ссылки (например, W3C Link Checker).

7

См linkchecker инструмента:

LinkChecker является свободным, GPL лицензированным сайтом валидатора. LinkChecker проверяет ссылки в веб-документах или на полных веб-сайтах.

0

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

// Pseudo-code to recursively check for broken links 
// logging all errors centrally 
function check_links($page) 
{ 
    $html = fetch_page($page); 
    if(!$html) 
    { 
     // Log page to failures log 
     ... 
    } 
    else 
    { 
     // Find all html, img, etc links on page 
     $links = find_links_on_page($html); 
     foreach($links as $link) 
     { 
      check_links($link); 
     } 
    } 
} 

После того, как ваш сайт получил определенный уровень внимания от Google, их webmaster tools бесценны в показе неработающих ссылок, которые могут возникнуть у пользователей, но это довольно реакционно - мертвые ссылки могут быть вокруг в течение нескольких недель, прежде чем Google индексирует их и регистрирует 404 в панели вашего веб-мастера.

Написание собственного скрипта, как показано выше, покажет вам все возможные неработающие ссылки, не дожидаясь, пока Google google (средство для веб-мастеров) или ваши пользователи (404 в журналах доступа) будут спотыкаться о них.

-1

Существует приложение Windows под названием CheckWeb. Он больше не разработан, но работает хорошо, и код открыт (C++, я считаю).

Вы просто даете ему URL, и она будет сканировать ваш сайт (и внешние ссылки, если вы выбираете), сообщая ошибки, изображение/страница «вес» и т.д.

http://www.algonet.se/~hubbabub/how-to/checkweben.html

1

В а. NET вы можете настроить IIS на передачу всех запросов на ASP.NET, а затем в ваш глобальный обработчик ошибок вы можете поймать и зарегистрировать 404 ошибки. Это то, что вы могли бы сделать, помимо того, что вы просматривали свой сайт, чтобы проверить наличие внутренних недостающих ссылок. Это может помочь найти неработающие ссылки с ДРУГИХ сайтов, и вы можете исправить их с 301 переадресацией на правильную страницу.

Чтобы проверить ваш сайт на внутреннем уровне, также есть инструментарий Microsoft SEO.

Конечно, лучшая техника заключается в том, чтобы избежать проблемы во время компиляции! В ASP.NET вы можете приблизиться к этому, требуя, чтобы все ссылки были созданы из статических методов на каждой странице, так что существует только одно место, где генерируется любой заданный URL. например http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx

Если вы хотите полный C# искатель, есть один здесь: - http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/

0

LinkTiger кажется очень полированной (хотя и не бесплатно), чтобы сделать это. Я не использую его, просто хочу добавить, потому что он еще не упоминался.

1

Наш коммерческий продукт DeepTrawl делает это и может использоваться как на Windows/Mac.

Раскрытие информации: Я ведущий разработчик DeepTrawl.

20

Только что нашел сценарий wget, который делает то, о чем вы просите.

wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com 

Кредит для этого - .

Смежные вопросы