Skip to main content

Crate millipede_http

Crate millipede_http 

Source
Expand description

§millipede-http

HttpCrawler for the Millipede web crawler: reqwest-based HTTP fetching.

crates.io docs.rs license

This crate supplies Millipede with its reqwest-backed HTTP crawler, including redirects, cookies, sessions, proxies, retry classification, response streaming, and request coalescing.

§Installation

[dependencies]
millipede-http = "0.1"

Most users should depend on the umbrella millipede crate instead.

§Example

use std::sync::Arc;

use millipede_core::prelude::Crawler;
use millipede_http::{HttpContext, HttpCrawler, HttpKindBuilder};
use millipede_storage_memory::MemoryStorageClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let kind = HttpKindBuilder::default().build()?;
    let crawler: HttpCrawler = Crawler::builder(kind)
        .max_request_retries(2)
        .storage_client(Arc::new(MemoryStorageClient::new()))
        .request_handler(|ctx: HttpContext| async move {
            println!("{} -> {}", ctx.request.url, ctx.response.status);
            Ok(())
        })
        .build()
        .await?;

    crawler.run(["https://example.com/"]).await?;
    Ok(())
}

§Part of Millipede

See the Millipede guide for crawler concepts, storage, retries, sessions, and migration guidance.

§License

Licensed under either MIT OR Apache-2.0 at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate is dual-licensed as above, without any additional terms or conditions.

Re-exports§

pub use nav::HttpPostHookCtx;
pub use nav::HttpPostNavigationHook;
pub use nav::HttpPreHookCtx;
pub use nav::HttpPreNavigationHook;

Modules§

nav
Concrete HTTP navigation hook contexts.
prelude
Commonly used HTTP client types.

Structs§

CoalescingClient
An HTTP client decorator that joins safe, identical requests already in flight.
HttpContext
Per-request context produced by HttpKind.
HttpKind
HTTP fetching behavior used by HttpCrawler.
HttpKindBuilder
Configures HttpKind.
ReqwestClient
A reqwest-backed HttpClient with manual redirect and cookie handling.
ReqwestClientOptions
Configuration for ReqwestClient.

Type Aliases§

HttpCrawler
A crawler using HttpKind to fetch raw HTTP responses.