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
impl Fetcher
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new fetcher with default configuration (Chrome impersonation, 30s timeout, 3 retries, stealth headers enabled).
Sourcepub fn with_config(config: FetcherConfig) -> Self
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.
Sourcepub fn builder() -> FetcherConfigBuilder
pub fn builder() -> FetcherConfigBuilder
Returns a new FetcherConfigBuilder for constructing a validated config.
This is a convenience shortcut for FetcherConfigBuilder::new().
Sourcepub fn from_builder(builder: FetcherConfigBuilder) -> Result<Self>
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).
Sourcepub fn set_proxy_rotator(&mut self, rotator: ProxyRotator)
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.
Sourcepub fn set_parser_config(&mut self, parser_config: ParserConfig)
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.
Sourcepub fn config(&self) -> &FetcherConfig
pub fn config(&self) -> &FetcherConfig
Returns a reference to the current fetcher configuration. Useful for inspecting defaults or logging the active settings.
Sourcepub async fn get(
&self,
url: &str,
req: Option<RequestConfig>,
) -> Result<Response>
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.
Sourcepub async fn post(
&self,
url: &str,
req: Option<RequestConfig>,
) -> Result<Response>
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.
Sourcepub async fn put(
&self,
url: &str,
req: Option<RequestConfig>,
) -> Result<Response>
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.
Sourcepub async fn delete(
&self,
url: &str,
req: Option<RequestConfig>,
) -> Result<Response>
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§
Auto Trait Implementations§
impl !Freeze for Fetcher
impl RefUnwindSafe for Fetcher
impl Send for Fetcher
impl Sync for Fetcher
impl Unpin for Fetcher
impl UnsafeUnpin for Fetcher
impl UnwindSafe for Fetcher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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