Port variant | v13 |
Summary | HTML parser based on WHATWG specification (3.13) |
BROKEN | |
Package version | 1.1 |
Homepage | https://github.com/html5lib/html5lib-python |
Keywords | python |
Maintainer | Python Automaton |
License | Not yet specified |
Other variants | v12 |
Ravenports | Buildsheet | History |
Ravensource | Port Directory | History |
Last modified | 15 NOV 2024, 16:08:50 UTC |
Port created | 30 OCT 2018, 18:17:46 UTC |
single | html5lib
========
html5lib is a pure-python library for parsing HTML. It is designed to
conform to the WHATWG HTML specification, as is implemented by all major
web browsers.
Usage
-----
Simple usage follows this pattern:
.. code-block:: python
import html5lib
with open("mydocument.html", "rb") as f:
document = html5lib.parse(f)
or:
.. code-block:: python
import html5lib
document = html5lib.parse(" Hello World!") By default, the document will be an ``xml.etree`` element instance. Whenever possible, html5lib chooses the accelerated ElementTree implementation (i.e. ``xml.etree.cElementTree`` on Python 2.x). Two other tree types are supported: ``xml.dom.minidom and lxml.etree``. To use an alternative format, specify the name of a treebuilder: .. code-block:: python import html5lib with open("mydocument.html", "rb") as f: lxml_etree_document = html5lib.parse(f, treebuilder="lxml") When using with urllib2 (Python 2), the charset from HTTP should be pass into html5lib as follows: .. code-block:: python from contextlib import closing from urllib2 import urlopen import html5lib with closing(urlopen("http://example.com/")) as f: document = html5lib.parse(f, transport_encoding=f.info().getparam("charset")) When using with ``urllib.request`` (Python 3), the charset from HTTP should be pass into html5lib as follows: .. code-block:: python from urllib.request import urlopen import html5lib with urlopen("http://example.com/") as f: document = html5lib.parse(f, transport_encoding=f.info().get_content_charset()) To have more control over the parser, create a parser object explicitly. For instance, to make the parser raise exceptions on parse errors, use: .. code-block:: python import html5lib with open("mydocument.html", "rb") as f: parser = html5lib.HTMLParser(strict=True) document = parser.parse(f) When you're instantiating parser objects explicitly, pass a treebuilder class as the tree keyword argument to use an alternative document format: .. code-block:: python import html5lib parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom")) minidom_document = parser.parse(" Hello World!") More documentation is available at https://html5lib.readthedocs.io/. Installation ------------ html5lib works on CPython 2.7+, CPython 3.5+ and PyPy. To install: .. code-block:: bash $ pip install html5lib The goal is to support a (non-strict) superset of the versions that [pip supports ]. Optional Dependencies |
Build (only) |
python313:dev:std python-pip:single:v13 autoselect-python:single:std |
Build and Runtime | python313:primary:std |
Runtime (only) |
python-six:single:v13 python-webencodings:single:v13 |
main | mirror://PYPIWHL/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028 |
No other ports depend on this one. |