> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/pt-br/web-scraper-api/web-scraper-api-playground/oxycopilot.md).

# OxyCopilot

**OxyCopilot** é um recurso gratuito [**Web Scraper API** ](/products/pt-br/web-scraper-api.md)que facilita o onboarding e ajuda os usuários a encontrar soluções eficazes para casos de uso complexos, tudo sem a necessidade de conhecimento em programação. OxyCopilot atualmente inclui três recursos separados:

* **Construtor de scrapers**
* [**Custom Parser**](/products/pt-br/web-scraper-api/features/custom-parser.md) **construtor**
* **Construtor de instruções do navegador**

{% hint style="success" %}
OxyCopilot está disponível no [**Web** **Scraper API Playground**](https://dashboard.oxylabs.io/?route=/api-playground) no painel da Oxylabs.
{% endhint %}

{% embed url="<https://youtu.be/9JoF8_5r5HY?si=61c3Zkx6FrH06PVa>" %}

## Construtor de scrapers

OxyCopilot ajuda você a configurar um scraper (e formar o payload da requisição) para a Web Scraper API sem precisar entender a documentação ou a lógica dos campos.

### Como funciona

#### **Etapa 1: Forneça uma URL e um prompt**

* **URL:** Forneça a URL que você deseja extrair.
* **Prompt:** Descreva seus requisitos (por exemplo, localização, renderização de JS etc.).

<figure><img src="/files/9dfb0470c3f90da22399d4bcbdb1f85f2f9f160a" alt="" width="563"><figcaption></figcaption></figure>

**Etapa 2: Parsing**

Você tem três opções para lidar com o parsing:

1. **Custom Parser**: Selecione "Adicionar instruções de parsing" para criar sua própria lógica de parsing usando o [**construtor do Custom Parser**](#custom-parser-builder).
2. **Parser dedicado**: Se a URL for de um site para o qual fornecemos um parser dedicado e você quiser usá-lo, selecione "Continuar com o Parser dedicado".
3. **Sem parsing**: Escolha continuar sem parsing se dados estruturados não forem necessários.

{% hint style="warning" %}
Se a URL pertencer a um site para o qual temos um parser dedicado, mas você não precisar de dados estruturados, selecione "Continuar com o Parser dedicado" e desative o parâmetro parse nas configurações do playground. Evite usar o botão de sair, pois ele não salvará os parâmetros pré-preenchidos.
{% endhint %}

<div><figure><img src="/files/c6595b99bdd210311c476126499f5621e3032c00" alt="" width="375"><figcaption><p>Se não tivermos um parser dedicado</p></figcaption></figure> <figure><img src="/files/b6826cd17b775ef46a0987a87b16421dbb092768" alt="" width="375"><figcaption><p>Se tivermos um parser dedicado</p></figcaption></figure></div>

#### **Etapa 3: Revise a requisição**

Com base no seu prompt, o OxyCopilot vai preencher previamente os parâmetros necessários no Web Scraper API Playground. Você verá o código da requisição e os parâmetros específicos para o seu caso de uso, e poderá ajustar os parâmetros se necessário.

**Etapa 4: Envie a requisição e copie**

Se tudo parecer bom, envie a requisição para ver como a saída fica e verificar se funciona como esperado. Depois, copie o código da requisição para usar em suas próximas tarefas de scraping com a Web Scraper API.

### Exemplo

#### URL

```
https://www.amazon.de/s?k=adidas
```

#### Prompt

{% code overflow="wrap" %}

```
Extraia a página de busca da Amazon a partir da URL fornecida e localize os resultados para a Polônia.
```

{% endcode %}

#### Parâmetros gerados por IA (JSON)

```json
{
        "source": "amazon_search",
        "query": "adidas",
        "geo_location": "PL",
        "domain": "de"
}
```

#### Códigos de requisição gerados por IA

<figure><img src="/files/ae41f34e840513a625b4185c578a8c440fd378de" alt=""><figcaption></figcaption></figure>

## construtor do Custom Parser

Aproveite o [**Custom Parser**](/products/pt-br/web-scraper-api/features/custom-parser.md) recurso com OxyCopilot para criar um parser sem precisar escrever código ou analisar manualmente a estrutura dos sites.

### Como funciona

#### **Etapa 1: Forneça URL(s) e um prompt**

* **URL(s):** Você pode fornecer até **3 URLs** para as quais você deseja gerar instruções de parsing. OxyCopilot usa o HTML das URLs fornecidas para determinar a melhor lógica para extrair os campos necessários.

{% hint style="info" %}
Quanto mais URLs você fornecer, mais robustas serão as instruções de parsing, pois OxyCopilot identifica padrões comuns entre páginas semelhantes. Observe que URLs adicionais podem aumentar o tempo de espera pelos resultados.
{% endhint %}

* **Prompt:** O prompt é o componente principal na criação de um esquema em linguagem natural, que serve de base para gerar as instruções de parsing reais. O prompt deve descrever claramente os campos que precisam ser analisados.

<figure><img src="/files/b66d41ac40d958dd3b6c1f961d9cc225dd94f354" alt=""><figcaption></figcaption></figure>

#### **Etapa 2 \[Opcional]: Ajuste o esquema de parsing**

Esta etapa permite refinar o esquema de parsing para atender melhor às suas necessidades ou solucionar quaisquer problemas.

#### **Visão geral do esquema de parsing**

<figure><img src="/files/8aa9382df31a5c2792995109a014382e417246ca" alt=""><figcaption></figcaption></figure>

Esta tabela visualiza a entrada usada pela IA para gerar instruções de parsing. O esquema define quais campos precisam ser analisados e consiste em vários tipos de objeto (explicados na [**tabela**](#object-type-explanations) abaixo).

Cada item no esquema deve ter:

* **Nome**: Isso será usado como a chave do objeto nas instruções de parsing e ficará visível nos dados analisados.
* **Descrição** (opcional, mas recomendado): Ajuda a melhorar a precisão da análise.

### **Ajustes no esquema**

* **Reordenar itens**: Arraste e solte os itens usando os pontos no lado esquerdo para alterar a ordem (apenas itens no mesmo nível de aninhamento podem ser movidos).
* **Editar itens**: Clique no ícone de edição para modificar qualquer campo.
* **Excluir itens**: Você pode excluir qualquer item no nível pai.
* **Adicionar novos itens**: Adicione novos itens ao nível pai.

Depois de atualizar o esquema, clique no **"Atualizar saída"** botão para regenerar as instruções e visualizar os dados analisados.

### Explicações dos tipos de objeto

<table><thead><tr><th width="208">Tipo de objeto</th><th width="243">Descrição</th><th>Exemplo de dados analisados</th></tr></thead><tbody><tr><td>string</td><td>Uma única saída de texto</td><td><code>“title”: “Example product title”</code></td></tr><tr><td>Número</td><td>Um único número</td><td><code>“price”: 9.99</code></td></tr><tr><td>Array de strings</td><td>Uma lista de saídas de texto</td><td><code>“products”: [“product 1”, “product 2”, “product 3”]</code></td></tr><tr><td>Array de números</td><td>Uma lista de números</td><td><code>“pages”: [1, 2, 3]</code></td></tr><tr><td>Array de objetos</td><td>Uma lista de objetos/itens, cada um com seus próprios objetos internos (<code>_items</code> bloco nas instruções de parsing)</td><td><pre class="language-json"><code class="lang-json">“related_items”: [
  {
    “title”: “product 1”,
    “price”: 9.99
  },
  {
    “title”: “product 2”,
    “price”: 15.99
  }
]
</code></pre></td></tr></tbody></table>

### Trabalhando com array de objetos

1. **Selecione "Array de objetos"**: Esta opção adiciona um objeto filho e um botão.

<figure><img src="https://lh7-qw.googleusercontent.com/docsz/AD_4nXcnZ-xxFBAjZPzSJesa5bjbUj7wOQlGn7Ut4bxQzrRNbUmN0CkcfOZa23QRLma2vUsINNl6c5TOixopuBGdIk9iKFvWNpfpkF5s-zL9CKWxEEeJ40yZc6n2eqRsUw45HcWJjZikl4pERT-8-nF5Pno7kpQ?key=TW5rMlJ-s_BzFm7nRv1Dlw" alt=""><figcaption></figcaption></figure>

2. **Preencha os nomes dos objetos**: Para salvar o item no esquema, você deve preencher os nomes dos objetos pai e filho. Quando terminar, a marca de verificação ficará verde.

<figure><img src="https://lh7-qw.googleusercontent.com/docsz/AD_4nXffrjzhyFW4oiVj6MHaRGp7ysfkC1cVR4viQEWM5FBE3vhElH-ZRL5B796G6cfK5dNMvLtXafioTUoQaG-3QQTuaPLcq4UcsmA524hNW_IMjvw6pUdY-CRAHaYvyMkctNX0pp9qmWrxoOR3sNAwqwc8OpVT?key=TW5rMlJ-s_BzFm7nRv1Dlw" alt=""><figcaption></figcaption></figure>

3. **Requisito de objeto filho**: Um "Array de objetos" deve ter pelo menos um filho.

### Testando as instruções

Por padrão, os dados analisados são baseados na primeira URL fornecida na **Etapa 1**. Você também pode fornecer uma URL diferente para testar as instruções de parsing:

<figure><img src="/files/a81455b28be34c50541b72c765d2285dab9e1184" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
As instruções são geradas com base nas URLs iniciais e não levam em conta as URLs de teste. Editar o prompt ou as URLs redefinirá o esquema, exigindo uma regeneração completa.
{% endhint %}

#### **Etapa 3: Copie/salve as instruções e integre aos trabalhos de scraping**

Quando as instruções estiverem satisfatórias:

* Use o **"Copiar"** botão para copiar as instruções e colá-las no código do seu scraper.
* Como alternativa, salve as instruções na sua sessão do Web Scraper API Playground, ajuste outros parâmetros da requisição, teste e depois copie o código completo da requisição na sua linguagem de programação preferida.

<figure><img src="/files/01c9032960ed78bbc96652f4aeffff4ebacc26f1" alt=""><figcaption></figcaption></figure>

### Exemplo

#### URL

```
https://sandbox.oxylabs.io/products/1
```

#### Prompt

{% code overflow="wrap" %}

```
Quero analisar uma página de produto. Os dados analisados devem incluir os seguintes campos:

- product_title: um campo de texto contendo o título do produto
- price: um campo numérico contendo o preço do produto
- related_products: uma lista contendo os títulos de produtos relacionados exibidos abaixo das informações principais do produto
```

{% endcode %}

#### Esquema de parsing

<table><thead><tr><th width="214">Tipo de objeto</th><th width="209">Nome*</th><th>Descrição</th></tr></thead><tbody><tr><td>string</td><td>product_title</td><td>Título do produto</td></tr><tr><td>Número</td><td>preço</td><td>Preço do produto</td></tr><tr><td>Array de strings</td><td>related_products</td><td>Títulos de produtos relacionados abaixo das informações principais do produto</td></tr></tbody></table>

#### Instruções de parsing

```json
{
    "product_title": {
        "_fns": [
            {
                "_fn": "xpath_one",
                "_args": [
                    "//h2[@class=\"title css-1k75zwy e1pl6npa11\"]/text()",
                    "//div[@class=\"product-info-wrapper css-m2w3q2 emlf3670\"]/h2/text()",
                    "//div[@id=\"__next\"]/main/div/div/div/div[2]/div[1]/div[2]/div[2]/h2/text()"
                ]
            },
            {
                "_fn": "regex_search",
                "_args": [
                    "^\\s*(.[\\s\\S]*?)\\s*$",
                    1
                ]
            }
        ]
    },
    "price": {
        "_fns": [
            {
                "_fn": "xpath_one",
                "_args": [
                    "//div[@class=\"price css-o7uf8d e1pl6npa6\"]/text()",
                    "//div[@class=\"product-info-wrapper css-m2w3q2 emlf3670\"]/div[4]/text()",
                    "//div[@id=\"__next\"]/main/div/div/div/div[2]/div[1]/div[2]/div[2]/div[4]/text()"
                ]
            },
            {
                "_fn": "amount_from_string"
            }
        ]
    },
    "related_products": {
        "_fns": [
            {
                "_fn": "xpath",
                "_args": [
                    "//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]/a[1]/h4/text()",
                    "//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div/a[1]/h4/text()",
                    "//div[@class=\"related-products css-1rinft1 emlf3670\"]/div/a[1]/h4/text()",
                    "//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div/a[1]/h4/text()",
                    "//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
                    "//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
                    "//div[@class=\"related-products css-1rinft1 emlf3670\"]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
                    "//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
                    "//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
                    "//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
                    "//div[@class=\"related-products css-1rinft1 emlf3670\"]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
                    "//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()"
                ]
            },
            {
                "_fn": "regex_search",
                "_args": [
                    "^\\s*(.[\\s\\S]*?)\\s*$",
                    1
                ]
            }
        ]
    }
}
```

#### Dados analisados

```json
{
    "price": 91.99,
    "product_title": "The Legend of Zelda: Ocarina of Time",
    "related_products": [
        "The Legend of Zelda: Majora's Mask",
        "Indiana Jones and the Infernal Machine"
    ],
    "parse_status_code": 12000
}
```

### Gerando instruções de parsing via uma API

Se você quiser gerar muitos conjuntos diferentes de instruções de parsing para cobrir a variedade de sites com os quais trabalha, você pode criar instruções de parsing via uma API – veja [API geradora de instruções de parsing](/products/pt-br/web-scraper-api/features/custom-parser/generating-parsing-instructions-via-api.md) para ver como isso é feito.

## Construtor de instruções do navegador

Você pode usar OxyCopilot para criar scripts complexos de interação com páginas sem analisar a estrutura do site ou escrever manualmente a configuração das suas [Instruções do navegador](/products/pt-br/web-scraper-api/features/js-rendering-and-browser-control.md).

### Como funciona

#### **Etapa 1: Forneça uma URL e um prompt**

* **URL:** Forneça uma única URL para gerar instruções do navegador. OxyCopilot usa o HTML da URL fornecida para determinar como criar os scripts das interações da página da web de que você precisa.
* **Prompt:** O prompt é crucial para criar as instruções do navegador. Descreva claramente quais ações você gostaria que fossem executadas na página da web quando ela abrir (por exemplo: "Role até o final, espere o botão 'próxima página' carregar, clique no botão 'próxima página'").

<figure><img src="/files/5a59b3739b47fa24ac31f9eae33901c51f11f753" alt=""><figcaption></figcaption></figure>

#### **Etapa 2 \[Opcional]: Ajuste as instruções do navegador**

Esta etapa permite refinar a sequência de instruções do navegador para atender melhor às suas necessidades ou solucionar quaisquer problemas.

#### **Visão geral das instruções do navegador**

<figure><img src="/files/8285a1ad213369a3bb3749121a77b14993fdd4cd" alt=""><figcaption></figcaption></figure>

Quando OxyCopilot terminar de processar sua entrada, ele mostrará a sequência de instruções do navegador que criou.

Você pode ajustar a sequência editando, adicionando ou removendo etapas.

#### **Etapa 3: Copie/salve as instruções e integre aos trabalhos de scraping**

Quando as instruções estiverem satisfatórias, você pode salvá-las na sua sessão do Web Scraper API Playground, ajustar outros parâmetros da requisição, testar e depois copiar o código completo da requisição na sua linguagem de programação preferida.

<figure><img src="/files/0d62a6026bfefdfa88bf8be36c3064cf57157958" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Adoraríamos receber seu feedback e sugestões de melhoria. Não hesite em entrar em contato conosco em <support@oxylabs.io> ou se conectar com nosso suporte por chat ao vivo 24/7.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/products/pt-br/web-scraper-api/web-scraper-api-playground/oxycopilot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
