# Formación de URLs

Siguiendo estas directrices, puede construir URL para Baidu, Yandex o Wayfair para sus tareas de web scraping.

## **Baidu**

Asignación de parámetros del trabajo a la URL:

{% code overflow="wrap" %}

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

{% endcode %}

Al formar las URL, siga estas instrucciones:

1. **Codificación de términos de búsqueda**: Los términos de búsqueda deben estar codificados en la URL. Por ejemplo, los espacios deben reemplazarse por `%20`, que representa un carácter de espacio en una URL.
2. **Cálculo de la página inicial**: El `start_page` parámetro ahora corresponde al número de resultados de búsqueda a omitir. Use la ecuación `limit*start_page-limit` para calcular el valor.
3. **Asignación de subdominio**: El valor del subdominio depende del tipo de User-Agent proporcionado en el trabajo. Si el tipo de User-Agent contiene mobile, el valor del subdominio debe ser `m`. De lo contrario, debe ser `www`.
4. **Parámetro de consulta**: Dependiendo del valor del subdominio (`m` o `www`), el parámetro de consulta para el término de búsqueda debe ajustarse en consecuencia (`word` para `m` y `wd` para `www`).

#### URLs de ejemplo construidas

Para móvil:

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

Para escritorio:

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

#### Ejemplos de trabajos equivalentes

Desmantelado `baidu_search` fuente:

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

Actualizado `universal` fuente:

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

## **Yandex**

Asignación de parámetros del trabajo a la URL:

{% code overflow="wrap" %}

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

{% endcode %}

Al formar las URL, siga estas instrucciones:

1. **Codificación de términos de búsqueda**: Los términos de búsqueda deben estar codificados en la URL. Por ejemplo, los espacios deben reemplazarse por `%20`, que representa un carácter de espacio en una URL.
2. **Ajuste de la página inicial**: El valor de la `start_page` tiene que reducirse en 1. Por ejemplo, si la página inicial deseada es 3, entonces el valor en la URL, que representa el número de página, tiene que ser `2`.
3. **Localización**: Si el dominio es cualquiera de `ru` o `tr`, un parámetro de consulta adicional `lr` se añade con el `geo_location` valor. Para otros dominios, el `geo_location` valor está bajo el parámetro de consulta `rstr`, donde se añade un `-` símbolo antes del valor.
4. **No compatible**: el parámetro pages ya no es compatible. Los trabajos deben enviarse por separado cambiando el valor de la página actual en la URL.

#### Ejemplos de URL construidas

```
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
```

#### Ejemplo de trabajo equivalente

Desmantelado `yandex_search` fuente:

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

Actualizado `universal` fuente:

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

## Wayfair

Asignación de parámetros del trabajo a la URL:

{% code overflow="wrap" %}

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

{% endcode %}

Al formar las URL, siga estas instrucciones:

1. **Codificación de términos de búsqueda**: los términos de búsqueda deben estar codificados en la URL. Por ejemplo, los espacios deben reemplazarse con `%20`, que representa un carácter de espacio en una URL.
2. **Parámetros**: Si `limit` es igual a `48` y `start_page` es igual a `1`, entonces los siguientes parámetros adicionales deben añadirse a la URL:
   1. `command=dosearch`
   2. `new_keyword_search=true`

#### Ejemplos de URL construidas

```
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 %}

#### Ejemplo de trabajo equivalente

Desmantelado `wayfair_search` fuente:

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

Actualizado `universal` fuente:

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