millipede
An idiomatic Rust web-crawling library inspired by Crawlee.
Quick start
[]
= "0.1.0"
= { = "1", = ["macros", "rt-multi-thread"] }
= "1"
use Arc;
use ;
async
Feature flags
http, html, and storage-memory are enabled by default. The core API is always available.
| Feature | Enables | Default |
|---|---|---|
http |
Reqwest-based HTTP fetching and HttpCrawler |
Yes |
html |
HTML parsing and HtmlCrawler |
Yes |
storage-memory |
In-memory datasets, key-value stores, and request queues | Yes |
storage-fs |
File-system-backed storage | No |
browser |
Browser crawler abstractions and smart crawling | No |
browser-chromiumoxide |
The chromiumoxide CDP provider; also enables browser |
No |
fingerprint |
Browser-like header generation and fingerprint hooks | No |
Crawler kinds
HttpCrawler fetches URLs over HTTP and exposes response data, sessions, proxies, and URL enqueueing to handlers.
HtmlCrawler adds synchronized HTML parsing and DOM-based link extraction to HTTP crawling.
BrowserCrawler drives pages through a browser provider for JavaScript-rendered sites.
SmartCrawler starts on the faster HTTP path and promotes requests to a browser when its promotion detector identifies a JavaScript shell or another browser-only response.
Links
- Autoscaler guide
- Fingerprinting guide
- Crawlee storage migration
- Extras policy
- Examples
- Roadmap
- Interface design
License
Licensed under either the MIT License or the Apache License, Version 2.0, at your option. Contributions intentionally submitted for inclusion are licensed under the same terms.