selectolax
selectolax is a fast and lightweight library for parsing HTML and XML documents in Python. It is designed to be a drop-in replacement for the popular BeautifulSoup library, with significantly faster performance.
selectolax uses a Cython-based parser to quickly parse and navigate through HTML and XML documents. It provides a simple and intuitive API for working with the document's structure, similar to BeautifulSoup.
To use selectolax, you first need to install it via pip by running pip install selectolax``.
Once it is installed, you can use theselectolax.html.fromstring()` function to parse an HTML document and create a selectolax object.
For example:
```
from selectolax.parser import HTMLParser
html_string = "
Hello, World!" root = HTMLParser(html_string).root print(root.tag) # html`
You can also use `selectolax.html.fromstring()` with file-like objects, bytes or file paths,
as well as `selectolax.xml.fromstring() for parsing XML documents.
Once you have a selectolax object, you can use the select() method to search for elements in the document using CSS selectors,
similar to BeautifulSoup. For example:
body = root.select("body")[0]
print(body.text()) # "Hello, World!"
Like BeautifulSoups find and find_all methods selectolax also supports searching using the search()`` method, which returns the first matching element,
and thesearch_all()`` method, which returns all matching elements.
Example Use
```python from selectolax.parser import HTMLParser
html_string = "
Hello, World!" root = HTMLParser(html_string).root print(root.tag) # htmluse css selectors:
body = root.select("body")[0] print(body.text()) # "Hello, World!"
find first matching element:
body = root.search("body") print(body.text()) # "Hello, World!"
or all matching elements:
html_string = "
paragraph1
paragraph2
" root = HTMLParser(html_string).root for el in root.search_all("p"): print(el.text())will print:
paragraph 1
paragraph 2
```