There is only one truth. It is the source.

Using validator.nu from Python

March 30, 2013

Tags: html validation, python, validator.nu

Follow instructions at https://github.com/w3c/validators to install and run Validator.nu.

Use it from Python:

import requests

# url = 'http://validator.nu/'
url = 'http://localhost:8888/nu/'

text = """
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p></p>
<dl><dt></dt></dl>
</body>
</html>
"""

r = requests.post(url, params={'level': 'error','showsource': 'yes', 'out': 'json', 'parser': 'html'}, data=text, headers={'content-type': 'text/html; charset=utf-8'})

# r.json is
# {u'messages': [{u'extract': u'><dt></dt></dl>\n</bod',
#    u'firstColumn': 14,
#    u'hiliteLength': 5,
#    u'hiliteStart': 10,
#    u'lastColumn': 18,
#    u'lastLine': 9,
#    u'message': u'Element \u201cdl\u201d is missing a required instance of child element \u201cdd\u201d.',
#    u'type': u'error'}],
#  u'source': {u'code': u'\n<!DOCTYPE html>\n<html>\n<head>\n<title></title>\n</head>\n<body>\n<p></p>\n<dl><dt></dt></dl>\n</body>\n</html>',
#   u'encoding': u'UTF-8',
#   u'type': u'text/html'}}