# Fetchers

{% hint style="info" %}
Skrape{it} provides different types of Fetchers (aka Http-Clients) that can be passed to its DSL. All of them will execute http requests but each of them handles a different use-case.
{% endhint %}

Depending on your use-case you may want to choose a certain Fetcher implementation that fits your needs. Each of the different fetchers comes with different advantages / features. To pick the one that suits you best you should ask yourself following questions:\
\
**You want to scrape a simple HTML page, easy, as fast as possible, but with deactivated Javascript?**

{% content-ref url="/pages/-MXT8Y36VAvJKhAkbIQZ" %}
[Http Client](/docs/http-client/overview.md)
{% endcontent-ref %}

#### You want to scrape a complex website, maybe a SPA app that has been written with frameworks like React.js, Angular or Vue.js or at least rely on javascript a lot?

{% content-ref url="/pages/-MXYEsPty7Wu7XbfoBsF" %}
[BrowserFetcher](/docs/http-client/fetchers/browserfetcher.md)
{% endcontent-ref %}

#### You want to scrape multiple HTML pages in parallel from inside a coroutine?

{% content-ref url="/pages/-MXYEqJcsvMzKYnghEq3" %}
[AsyncFetcher](/docs/http-client/fetchers/asyncfetcher.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skrape.it/docs/http-client/fetchers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
