# Instruções do navegador (Beta)

Ao usar Custom Browser Instructions, você pode definir suas próprias instruções específicas do navegador que são executadas ao renderizar JavaScript.

{% hint style="success" %}
Gerar **Instruções do navegador automaticamente** no [**Web Scraper API Playground**](https://dashboard.oxylabs.io/?route=/api-playground) no painel da Oxylabs. Configure ações do navegador, teste-as e exporte as instruções geradas em formato JSON.&#x20;
{% endhint %}

### Como usar?

Para usar instruções do navegador, forneça um conjunto de `browser_instructions` ao criar um job.

Vamos supor que você queira pesquisar o termo `pizza boxes` em um site.

<figure><img src="https://1214208351-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FVVCJxliUYBEPcG34IThU%2Fbi_1.png?alt=media&#x26;token=1f689105-300d-49ce-a38a-145fd925f54f" alt=""><figcaption></figcaption></figure>

Um exemplo de parâmetros do job seria o seguinte:

{% code overflow="wrap" %}

```bash
curl -k -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://www.ebay.com' \
-H 'x-oxylabs-render: html' \
-H "x-oxylabs-browser-instructions: [{\"type\":\"input\",\"value\":\"pizza boxes\",\"selector\":{\"type\":\"xpath\",\"value\":\"\/\/input[@class='gh-tb ui-autocomplete-input']\"}},{\"type\":\"click\",\"selector\":{\"type\":\"xpath\",\"value\":\"\/\/input[@type='submit']\"}},{\"type\":\"wait\",\"wait_time_s\":5}]"
```

{% endcode %}

**Etapa 1.** Você deve fornecer o `x-oxylabs-render: html` parâmetro.

**Etapa 2.** As instruções do navegador devem ser descritas no campo `x-oxylabs-browser_instructions` .

{% hint style="info" %}
As instruções do navegador fornecidas como valor do cabeçalho devem estar escapadas em JSON e não conter espaços extras.
{% endhint %}

As instruções de navegador de exemplo acima especificam que o objetivo é inserir um termo de pesquisa `pizza boxes` em um campo de busca, clicar no botão de `pesquisa` e aguardar 5 segundos para o conteúdo carregar.

O resultado coletado deve ser parecido com o seguinte:

```html
<!doctype html><html>
Conteúdo após executar as instruções      
</html>
```

O HTML coletado deve ser assim:

<figure><img src="https://1214208351-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2Fskb19h4I9wV9pBJSQIP6%2Fbi_2.png?alt=media&#x26;token=36c0fa1e-7bb6-4bf6-8047-ab9d9bbd20dd" alt=""><figcaption></figcaption></figure>

#### Obtendo recursos do navegador <a href="#fetching-browser-resources" id="fetching-browser-resources"></a>

Fornecemos uma instrução de navegador independente para obter recursos do navegador.

A função é definida aqui:

Usando `fetch_resource` fará com que o job retorne a primeira ocorrência de um recurso Fetch/XHR que corresponda ao formato fornecido, em vez do HTML que está sendo alvo.

Vamos supor que queremos direcionar um recurso GraphQL que é obtido ao visitar uma página de produto organicamente no navegador. Vamos fornecer as informações do job assim:

{% code overflow="wrap" %}

```bash
curl -k -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://www.example.com/product-page/123' \
-H 'x-oxylabs-render: html' \
-H "x-oxylabs-browser-instructions: [{\"type\": \"fetch_resource\",\"filter\": \"\/graphql\/product-info\/123\"}]"
```

{% endcode %}

Essas instruções vão resultar em um resultado assim:

```html
{"product_id": 123, "description": "", "price": 456}
```

### Lista de instruções de navegador suportadas <a href="#list-of-supported-browser-instructions" id="list-of-supported-browser-instructions"></a>

{% content-ref url="../../../solucoes-de-scraping/web-scraper-api/features/js-rendering-and-browser-control/browser-instructions/list-of-instructions" %}
[list-of-instructions](https://developers.oxylabs.io/documentation/pt-br/solucoes-de-scraping/web-scraper-api/features/js-rendering-and-browser-control/browser-instructions/list-of-instructions)
{% endcontent-ref %}

### Códigos de status <a href="#status-codes" id="status-codes"></a>

Veja nossos códigos de resposta descritos [**aqui**](https://developers.oxylabs.io/documentation/pt-br/solucoes-avancadas-de-proxy/web-unblocker/response-codes).

Os códigos de status relacionados à validação das instruções estão documentados [**aqui**](https://developers.oxylabs.io/documentation/pt-br/solucoes-de-scraping/web-scraper-api/features/js-rendering-and-browser-control/browser-instructions/list-of-instructions#instructions-validation).


---

# 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://developers.oxylabs.io/documentation/pt-br/solucoes-avancadas-de-proxy/web-unblocker/custom-browser-instructions/browser-instructions-beta.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.
