tokenstream
html5gum
tokenstream | html5gum | |
---|---|---|
2 | 3 | |
12 | 146 | |
- | - | |
4.8 | 6.8 | |
9 months ago | 25 days ago | |
Python | Rust | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tokenstream
-
vberlier/tokenstream: A versatile token stream for handwritten parsers
The repo has examples with some of the generated error messages. https://github.com/vberlier/tokenstream/blob/main/examples/json.py
html5gum
-
Ask HN: A fast, Rust HTML parser that works?
So I'm doing some web scraping in Rust, and so I will need to parse HTML. [scraper](https://docs.rs/scraper/latest/scraper/) (which uses [html5ever](https://github.com/servo/html5ever)) is doing fine except that it's the bottleneck of my application.
So I need a faster parser. I've tried [tl](https://docs.rs/tl/latest/tl/) which would've been perfect except that it doesn't actually work on the HTML I have. When I try to `query_selector` the elements I need, it returns nothing.
[Kuchiki](https://docs.rs/kuchiki/latest/kuchiki/) is abandonded.
I couldn't figure out how to get [lol-html](https://github.com/cloudflare/lol-html) to work for me (it's designed for re-writing HTML, whatever that means). It doesn't seem to have an API to extract the inner text of an element.
[html5gum](https://github.com/untitaker/html5gum) seems to be just an HTML tokenizer, or otherwise just too low-level. I have not yet tried [quick-xml](https://github.com/tafia/quick-xml/) but judging from the README, it's pretty low-level too. I mean, if these are the only options left then I will try them. Otherwise, I would love to use a parser that's faster but as ergonomic as `scraper` or `tl`.
At this point, I would be happy with an Lxml bridge/port of some sort. I don't need to mutate HTML, just parse and read data from it.
- html5gum: A WHATWG-compliant HTML5 tokenizer and tag soup parser
What are some alternatives?
xontrib-output-search - Get identifiers, paths, URLs and words from the previous command output and use them for the next command in xonsh shell.
sax-wasm - The first streamable, fixed memory XML, HTML, and JSX parser for WebAssembly.
parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.
germ - 🦠The Definitive Gemini Protocol Toolkit
html5ever - High-performance browser-grade HTML5 parser
quick-xml - Rust high performance xml reader and writer
Fuzi - A fast & lightweight XML & HTML parser in Swift with XPath & CSS support
logos - Create ridiculously fast Lexers
bytepiece-rs - The Bytepiece Tokenizer Implemented in Rust.
xeno - Fast Haskell XML parser
ar5iv - A web service offering HTML5 articles from arXiv.org as converted with latexml
lol-html - Low output latency streaming HTML parser/rewriter with CSS selector-based API