Skip to main content

A tool to raise quality issues about HTML pages

Project description

This is an interface around Nu Html Checker (v.Nu) to check document validation either from a list of pages or a Sitemap.


  • Python>=3.4;
  • Java>=8 (openjdk8 or oraclejdk8);
  • Virtualenv (recommended);
  • Pip (recommended);


  • requests;
  • click>=7.0,<8.0 (CLI only);
  • colorama (CLI only);
  • colorlog (CLI only);
  • Jinja2>=2.10,<3.0 (Jinja only);
  • Pygments (Jinja only);


pip install py-html-checker[cli,jinja]

If you don’t plan to use it from command line (like as a module) and for HTML export you can avoid the cli and jinja parts:

pip install py-html-checker


Validate one or many pages

With the command page you can validate one or many pages. Command accept one or many path and each path can be either an URL or a filepath (absolute or relative from your current location):

htmlcheck page ping.html
htmlcheck page
htmlcheck page ping.html foo/bar.html

Validate all path from a sitemap

With the command site you can validate every page referenced in a sitemap.xml file. Command accept only one argument for the sitemap path which can be either an URL or a filepath (absolute or relative from your current location).

Note than for a sitemap file, its referenced urls must be absolute or relative to your current location. For a sitemap url, its referenced urls must be an absolute url (with leading http):

htmlcheck site sitemap.xml
htmlcheck site

Manage verbosity

Default commandline verbosity is set to “Info” level, you may set it to “Debug” level to get also some more informations about command line work:

htmlcheck -v 5 site sitemap.xml

Or a totally silent output (beware that not any error will be return to output except commandline critical error):

htmlcheck -v 0 site sitemap.xml

Common options

Directory path where to write report files. If destination is not given, every files will be printed out. You can use a dot to write files to your current directory, a relative path or an absolute path. Path can start with ~ to point to your user home directory.
Select exporter format. Default format is logging, it just printout report messages. There is also a json format to create JSON files for reports. And finally a html format to create HTML files.
Pack reports into a single file or not. Default is to pack everything in a single file. ‘no-pack’ will create a file for each report and then an export summary. It is recommended to define a destination directory with ‘–destination’ if you don’t plan to use packed export, else every files will just be printed out in an unique output. This option has no effect with logging format.
Invalid paths won’t break execution of script and it will be able to continue to the end. This is mostly for rare usecase when invalid source encounter a bug from report parsing or from validator.
Execute validation for each path in its own distinct instance. Useful for very large path list which may take too long to display anything until every path has been validated. However, for small or moderate path list it will be longer than packed execution.
A customer user-agent to use for every possible requests.
Java thread stack size. Useful in some case where you encounter error ‘StackOverflowError’ from validator. Set it to something like ‘512k’.

Specific formats options


A path to a template directory for your custom templates. Your template directory must contains the summary, report and audit main templates and also a main.css file.

Specific ‘site’ options

For site command only. This will only get and parse given sitemap path but without validating its items, useful to validate a sitemap before using it for validations.

CLI help

See commandline helps for more details :

htmlcheck -h
htmlcheck page -h
htmlcheck site -h

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-html-checker, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size py-html-checker-0.4.0.tar.gz (26.8 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page