# Formação de URLs

Seguindo estas diretrizes, você pode construir URLs para Baidu, Yandex ou Wayfair para suas tarefas de web scraping.

## **Baidu**

Atribuição de parâmetros do job para a URL:

{% code overflow="wrap" %}

```
https://<subdomain>.baidu.<domain>/s?ie=utf-8&wd=<query>&rn=<limit>&pn=<calculated_start_page>
```

{% endcode %}

Ao formar URLs, por favor siga estas instruções:

1. **Codificação dos termos de busca**: Os termos de busca devem ser codificados em URL. Por exemplo, espaços devem ser substituídos por `%20`, que representa um caractere de espaço em uma URL.
2. **Cálculo da página inicial**: O `start_page` parâmetro agora corresponde ao número de resultados de busca a pular. Use a equação `limit*start_page-limit` para calcular o valor.
3. **Atribuição de subdomínio**: O valor do subdomínio depende do tipo de User-Agent fornecido no job. Se o tipo de User-Agent contiver mobile, o valor do subdomínio deve ser `m`. Caso contrário, deve ser `www`.
4. **Parâmetro de consulta**: Dependendo do valor do subdomínio (`m` ou `www`), o parâmetro de consulta para o termo de busca deve ser ajustado adequadamente (`word` para `m` e `wd` para `www`).

#### URLs de exemplo construídas

Para mobile:

```
https://m.baidu.com/s?ie=utf-8&word=test&rn=10&pn=20
```

Para desktop:

```
https://www.baidu.cn/s?ie=utf-8&wd=test%20query&rn=13
```

#### Exemplos de Jobs equivalentes

Descontinuado `baidu_search` fonte:

```json
{
    "source": "baidu_search",
    "query": "test",
    "domain": "com",
    "limit": 5,
    "start_page": 3,
    "user_agent_type": "desktop"
}
```

Atualizado `universal` fonte:

```json
{
    "source": "universal",
    "url": "https://www.baidu.com/s?ie=utf-8&wd=test&rn=5&pn=10",
    "user_agent_type": "desktop"
}
```

## **Yandex**

Atribuição de parâmetros do job para a URL:

{% code overflow="wrap" %}

```
https://yandex.<domain>/search/?text=<query>&numdoc=<limit>&p=<start_page>&lr=<geo_location>
```

{% endcode %}

Ao formar URLs, por favor siga estas instruções:

1. **Codificação dos termos de busca**: Os termos de busca devem ser codificados em URL. Por exemplo, espaços devem ser substituídos por `%20`, que representa um caractere de espaço em uma URL.
2. **Ajuste da página inicial**: O valor do `start_page` tem que ser reduzido em 1. Por exemplo, se a página inicial desejada for 3, então o valor na URL, que representa o número da página, tem que ser `2`.
3. **Localização**: Se o domínio for `ru` ou `tr`, um parâmetro de consulta adicional `lr` é adicionado com o `geo_location` valor. Para outros domínios, o `geo_location` valor está sob o parâmetro de consulta `rstr`, onde um `-` símbolo é adicionado antes do valor.
4. **Não suportado**: o parâmetro pages não é mais suportado. Jobs têm que ser enviados separadamente alterando o valor da página atual na URL.

#### Exemplos de URLs construídas

```
https://yandex.ru/search/?text=test&numdoc=5&p=0&lr=100
```

```
https://yandex.com/search/?text=test%201&numdoc=10&p=2&rstr=-100
```

#### Exemplo de job equivalente

Descontinuado `yandex_search` fonte:

```json
{
    "source": "yandex_search",
    "query": "test",
    "domain": "com",
    "limit": 5,
    "start_page": 3,
    "geo_location": 100,
    "results_language": "en"
}
```

Atualizado `universal` fonte:

```json
{
    "source": "universal",
    "url": "https://yandex.ru/search?text=adidas&numdoc=5&p=2&lr=100&lang=en"
}
```

## Wayfair

Atribuição de parâmetros do job para a URL:

{% code overflow="wrap" %}

```
https://www.wayfair.<domain>/keyword.php?keyword=<query>&itemsperpage=<limit>&curpage=<start_page>
```

{% endcode %}

Ao formar URLs, por favor siga estas instruções:

1. **Codificação dos termos de busca**: os termos de busca devem ser codificados em URL. Por exemplo, espaços devem ser substituídos por `%20`, que representa um caractere de espaço em uma URL.
2. **Parâmetros**: Se `limit` for igual a `48` e `start_page` for igual a `1`, então os seguintes parâmetros adicionais devem ser adicionados à URL:
   1. `command=dosearch`
   2. `new_keyword_search=true`

#### Exemplos de URLs construídas

```
https://www.wayfair.com/keyword.php?keyword=test&itemsperpage=24&curpage=1
```

{% code overflow="wrap" %}

```
https://www.wayfair.fr/keyword.php?keyword=t%202&itemsperpage=48&curpage=1&command=dosearch&new_keyword_search=true
```

{% endcode %}

#### Exemplo de job equivalente

Descontinuado `wayfair_search` fonte:

```json
{
   "source": "wayfair_search",
   "query": "test",
   "domain": "com",
   "limit": 5,
   "start_page": 3
}
```

Atualizado `universal` fonte:

```json
{
   "source": "universal",
   "url": "https://www.wayfair.com/keyword.php?keyword=room&itemsperpage=5&curpage=10"
}
```
