Skip to main content

Fetcher

Struct Fetcher 

Source
pub struct Fetcher { /* private fields */ }
Expand description

Stateless async HTTP fetcher that creates a new wreq client per request.

Because a fresh client is built for each request, there is no shared state between calls – no cookie jar, no persistent connections. This is the right choice for simple scraping tasks, parallel crawling from different IP addresses, or when you want maximum isolation between requests.

For login flows or multi-step interactions that need cookies, use FetcherSession.

Implementations§

Source§

impl Fetcher

Source

pub fn new() -> Self

Creates a new fetcher with default configuration (Chrome impersonation, 30s timeout, 3 retries, stealth headers enabled).

Source

pub fn with_config(config: FetcherConfig) -> Self

Creates a new fetcher with the given configuration. Use this when you want full control over the config without going through the builder.

Source

pub fn builder() -> FetcherConfigBuilder

Returns a new FetcherConfigBuilder for constructing a validated config. This is a convenience shortcut for FetcherConfigBuilder::new().

Source

pub fn from_builder(builder: FetcherConfigBuilder) -> Result<Self>

Constructs a fetcher from a completed builder. The builder is consumed and validated. Returns an error if the builder configuration is invalid (e.g., both a static proxy and a proxy rotator are set).

Source

pub fn set_proxy_rotator(&mut self, rotator: ProxyRotator)

Sets the proxy rotator for distributing requests across proxies. Each request will use the next proxy from the rotator according to its rotation strategy.

Source

pub fn set_parser_config(&mut self, parser_config: ParserConfig)

Sets the parser configuration for HTML processing. This controls adaptive parsing behavior on the Response objects returned by this fetcher.

Source

pub fn config(&self) -> &FetcherConfig

Returns a reference to the current fetcher configuration. Useful for inspecting defaults or logging the active settings.

Source

pub async fn get( &self, url: &str, req: Option<RequestConfig>, ) -> Result<Response>

Sends an HTTP GET request to the given URL. Pass None for req to use the fetcher’s default configuration, or pass a RequestConfig to override specific settings for this request.

Source

pub async fn post( &self, url: &str, req: Option<RequestConfig>, ) -> Result<Response>

Sends an HTTP POST request to the given URL. Use RequestConfig::json or RequestConfig::data to attach a request body.

Source

pub async fn put( &self, url: &str, req: Option<RequestConfig>, ) -> Result<Response>

Sends an HTTP PUT request to the given URL. Use RequestConfig::json or RequestConfig::data to attach a request body.

Source

pub async fn delete( &self, url: &str, req: Option<RequestConfig>, ) -> Result<Response>

Sends an HTTP DELETE request to the given URL. Some APIs accept a body with DELETE requests – use RequestConfig::data or RequestConfig::json if needed.

Trait Implementations§

Source§

impl Default for Fetcher

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more