Gumbo is an implementation of the HTML5 parsing algorithm implemented as a pure C99 library with no outside dependencies. It's designed to serve as a building block for other tools and libraries such as linters, validators, templating languages, and refactoring and analysis tools. Gumbo gains some of this by virtue of being written in C, but it is not an important consideration for the intended use-case, and was not a major design factor. Gumbo is intentionally designed to turn an HTML document into a parse tree, and free that parse tree all at once. To install the python bindings, make sure that the C library is installed first, and then sudo python setup.py install from the root of the distro. This installs a 'gumbo' module; pydoc gumbo should tell you about it. Tested on over 2.5 billion pages from Google's index. Passes all html5lib tests, including the template tag.
Features
- Fully conformant with the HTML5 spec
- Robust and resilient to bad input
- Simple API that can be easily wrapped by other languages
- Support for source locations and pointers back to the original text
- Support for fragment parsing
- Relatively lightweight, with no outside dependencies