An Elixir library for parsing and extracting data from HTML and XML using CSS or XPath selectors.
Meeseeks is an Elixir library for parsing HTML and XML documents and extracting structured data using CSS or XPath selectors. It solves the problem of web scraping and data extraction within Elixir applications by providing a reliable, performant parser with a clean API.
Elixir developers who need to scrape websites, parse HTML/XML feeds, or extract data from web documents in their applications.
Developers choose Meeseeks for its accurate HTML5 parsing, dual CSS/XPath selector support, and ease of use—all without requiring a local Rust installation due to precompiled NIFs.
An Elixir library for parsing and extracting data from HTML and XML with CSS or XPath selectors.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a clean, functional interface with helper functions like `Meeseeks.one` and `Meeseeks.all`, making data extraction straightforward, as demonstrated in the example code snippet for scraping Hacker News.
Leverages the Rust html5ever library via precompiled NIFs for browser-grade correctness, ensuring reliable parsing of modern HTML without requiring a Rust toolchain for most users, as noted in the installation guide.
Supports both CSS selectors (via a macro) and XPath expressions, offering flexibility for different querying needs, with importable modules `Meeseeks.CSS` and `Meeseeks.XPath` as shown in the README.
Precompiled NIFs are provided via rustler_precompiled, so developers can add the dependency to mix.exs without installing Rust, simplifying setup as per the installation instructions.
Relies on native implemented functions (NIFs) which can crash the BEAM VM if unstable, posing a production risk that isn't present in pure-Elixir alternatives like Floki.
The README explicitly warns that parsing is expensive, requiring pre-parsing for multiple selections, which can impact performance in high-throughput scraping or data pipeline scenarios.
Tested only with specific Elixir and Erlang versions (e.g., Elixir 1.16.0-1.18.0), which may delay support for newer releases and complicate upgrades in fast-moving environments.