Expand description
FerrisFetcher - A cutting-edge, high-level web scraping library crafted in Rust
This library provides a powerful, async web scraping solution with:
- High-performance HTTP client with connection pooling
- Robust HTML parsing and CSS selector support
- Concurrent scraping operations
- Configurable rate limiting and respectful scraping practices
- Flexible data extraction and export capabilities
§Quick Start
use ferrisfetcher::{FerrisFetcher, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let fetcher = FerrisFetcher::new();
let result = fetcher.scrape("https://example.com").await?;
println!("Title: {}", result.title.unwrap_or_default());
Ok(())
}Re-exports§
pub use client::HttpClient;pub use config::Config;pub use error::FerrisFetcherError;pub use error::Result;pub use extractor::DataExtractor;pub use extractor::ExtractionRuleBuilder;pub use extractor::presets;pub use html_parser::HtmlParser;pub use scraper::FerrisFetcher;pub use scraper::FerrisFetcherBuilder;pub use types::ScrapedData;pub use types::ExtractionRule;pub use types::ExtractionType;pub use types::RetryPolicy;pub use types::HttpMethod;pub use types::RequestStats;pub use types::RateLimit;
Modules§
- client
- HTTP client module for FerrisFetcher
- config
- Configuration management for FerrisFetcher
- error
- Error types for FerrisFetcher
- extractor
- Data extraction engine for structured data extraction
- html_
parser - HTML parsing module with CSS selector support
- scraper
- Main FerrisFetcher API - the high-level scraping interface
- types
- Common data types and structures for FerrisFetcher
Constants§
- VERSION
- Library version