linkchecker icon indicating copy to clipboard operation
linkchecker copied to clipboard

check links in web documents or full websites

LinkChecker

|Build Status|_ |License|_

.. |Build Status| image:: https://github.com/linkchecker/linkchecker/actions/workflows/build.yml/badge.svg?branch=master .. _Build Status: https://github.com/linkchecker/linkchecker/actions/workflows/build.yml .. |License| image:: https://img.shields.io/badge/license-GPL2-d49a6a.svg .. _License: https://opensource.org/licenses/GPL-2.0

Check for broken links in web sites.

Features

  • recursive and multithreaded checking and site crawling
  • output in colored or normal text, HTML, SQL, CSV, XML or a sitemap graph in different formats
  • HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet and local file links support
  • restrict link checking with regular expression filters for URLs
  • proxy support
  • username/password authorization for HTTP, FTP and Telnet
  • honors robots.txt exclusion protocol
  • Cookie support
  • HTML5 support
  • a command line and web interface
  • various check plugins available

Installation

Python 3.7 or later is needed. Using pip to install LinkChecker:

pip3 install linkchecker

The version in the pip repository may be old, to find out how to get the latest code, plus platform-specific information and other advice see doc/install.txt_ in the source code archive.

.. _doc/install.txt: https://linkchecker.github.io/linkchecker/install.html

Usage

Execute linkchecker https://www.example.com. For other options see linkchecker --help, and for more information the manual pages linkchecker(1)_ and linkcheckerrc(5)_.

.. _linkchecker(1): https://linkchecker.github.io/linkchecker/man/linkchecker.html

.. _linkcheckerrc(5): https://linkchecker.github.io/linkchecker/man/linkcheckerrc.html

Docker usage

If you do not want to install any additional libraries/dependencies you can use the Docker image which is published on GitHub Packages.

Example for external web site check::

docker run --rm -it -u $(id -u):$(id -g) ghcr.io/linkchecker/linkchecker:latest --verbose https://www.example.com

Local HTML file check::

docker run --rm -it -u $(id -u):$(id -g) -v "$PWD":/mnt ghcr.io/linkchecker/linkchecker:latest --verbose index.html

In addition to the rolling latest image, uniquely tagged images can also be found on the packages_ page.

.. _packages: https://github.com/linkchecker/linkchecker/pkgs/container/linkchecker