The fast, most optimal, and correct HTML & XML parsing library
Documentation | Releases | Benchmarks

MarkupEver is a modern, fast (high-performance), XML & HTML languages parsing library written in Rust.
KEY FEATURES:
- ๐ Fast: Very high performance and fast (thanks to html5ever and selectors).
- ๐ฅ Easy: Designed to be easy to use and learn. Completion everywhere.
- โจ Low-Memory: Written in Rust. Uses low memory. Don't worry about memory leaks. Uses Rust memory allocator.
- ๐งถ Thread-safe: Completely thread-safe.
- ๐ฏ Quering: Use your CSS knowledge for selecting elements from a HTML or XML document.
Installation
You can install MarkupEver by using pip:
It's recommended to use virtual environments.
$ pip3 install markupever
Example
Parse
Parsing a HTML content and selecting elements:
import markupever
dom = markupever.parse_file("file.html", markupever.HtmlOptions())
for element in dom.select("div.section > p:child-nth(1)"):
print(element.text())
Create DOM
Creating a DOM from zero:
from markupever import dom
dom = dom.TreeDom()
root: dom.Document = dom.root()
root.create_doctype("html")
html = root.create_element("html", {"lang": "en"})
body = html.create_element("body")
body.create_text("Hello Everyone ...")
print(root.serialize())