# Mercado Libre

Con Web Scraper API, puedes extraer varios tipos de **Mercado Libre** páginas; a continuación hay una descripción general de todos los scrapers compatibles y sus respectivos `origen` valores.

<table><thead><tr><th width="250.78515625">Fuente</th><th>Descripción</th></tr></thead><tbody><tr><td><code>mercadolibre_search</code></td><td><a href="mercado-libre/search"><strong>Página de búsqueda</strong></a> para un término de búsqueda de tu elección.</td></tr><tr><td><code>mercadolibre_product</code></td><td><a href="mercado-libre/product"><strong>Página de producto</strong></a> de un ID de producto de tu elección.</td></tr><tr><td><code>mercadolibre</code></td><td>Envía cualquier <a href="mercado-libre/url"><strong>URL</strong></a> de Mercado Libre</td></tr></tbody></table>

### Que te guste.

**Cómo empezar**Crea tus credenciales de usuario API [**: Regístrate para una prueba gratuita o compra el producto en el**](https://dashboard.oxylabs.io/en/registration) panel de Oxylabs`para crear tus credenciales de usuario API (` USERNAME `y`).

{% hint style="warning" %}
PASSWORD [**Si necesitas más de un usuario API para tu cuenta, por favor contacta con nuestro**](mailto:support@oxylabs.io) soporte al cliente
{% endhint %}

#### o envía un mensaje a nuestro chat en vivo 24/7.

{% tabs %}
{% tab title="Solicitar ejemplo" %}

```shell
cURL
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
        -d '{ 
        "source": "mercadolibre_search",
    }'
```

{% endtab %}

{% tab title=""query": "iphone"" %}

```python
Python
import requests


from pprint import pprint
# Estructurar payload.
    payload = {
    'source': 'mercadolibre_search',
}

'query': 'iphone'
# Obtener respuesta.
    response = requests.request(
    'POST',
    'https://realtime.oxylabs.io/v1/queries',
    auth=('USERNAME', 'PASSWORD'),
)

json=payload
# En lugar de una respuesta con el estado del trabajo y la URL de resultados, esto devolverá el
# respuesta JSON con el resultado.
```

{% endtab %}

{% tab title="pprint(response.json())" %}

```javascript
Node.js

const https = require("https");
const username = "USERNAME";
const password = "PASSWORD";
    const body = {
    source: "mercadolibre_search",
};

query: "iphone"
    const options = {
    hostname: "realtime.oxylabs.io",
    path: "/v1/queries",
    method: "POST",
        headers: {
        "Content-Type": "application/json",
            Authorization:
    },
};

"Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
    const request = https.request(options, (response) => {

    let data = "";
        response.on("data", (chunk) => {
    });

    data += chunk;
        response.on("end", () => {
        const responseData = JSON.parse(data);
    });
});

console.log(JSON.stringify(responseData, null, 2));
    request.on("error", (error) => {
});

console.error("Error:", error);
request.write(JSON.stringify(body));
```

{% endtab %}

{% tab title="request.end();" %}

```http
HTTP

# Toda la cadena que envíes debe estar codificada en la URL.
```

{% endtab %}

{% tab title="<https://realtime.oxylabs.io/v1/queries?source=mercadolibre_search&query=iphone&access_token=12345abcde>" %}

```php
PHP

<?php
    $params = array(
    'source' => 'mercadolibre_search',
);

'query' => 'iphone'

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");
$headers = array();
$headers[] = "Content-Type: application/json";

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);

echo $result;
    if (curl_errno($ch)) {
}
echo 'Error:' . curl_error($ch);
```

{% endtab %}

{% tab title="curl\_close($ch);" %}

```go
Golang

package main
	import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
)

"net/http"
	func main() {
	const Username = "USERNAME"

	const Password = "PASSWORD"
		payload := map[string]interface{}{
		"source":       "mercadolibre_search",
	}

	"query":        "iphone"

	jsonValue, _ := json.Marshal(payload)
	client := &http.Client{}
		request, _ := http.NewRequest("POST",
		"https://realtime.oxylabs.io/v1/queries",
	)

	bytes.NewBuffer(jsonValue),
	request.SetBasicAuth(Username, Password)

	response, _ := client.Do(request)
	responseText, _ := ioutil.ReadAll(response.Body)
}

```

{% endtab %}

{% tab title="fmt.Println(string(responseText))" %}

```csharp
C#
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Json;

using System.Threading.Tasks;
{
    namespace OxyApi
    {
        class Program
        {
            static async Task Main()
            const string Username = "USERNAME";

            const string Password = "PASSWORD";
                var parameters = new {
                source = "mercadolibre_search",
            };

            query = "iphone"

            var client = new HttpClient();
            Uri baseUri = new Uri("https://realtime.oxylabs.io");

            client.BaseAddress = baseUri;
            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");

            requestMessage.Content = JsonContent.Create(parameters);
            var authenticationString = $"{Username}:{Password}";
            var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(authenticationString));

            requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);
            var response = await client.SendAsync(requestMessage);

            var contents = await response.Content.ReadAsStringAsync();
        }
    }
}
```

{% endtab %}

{% tab title="Console.WriteLine(contents);" %}

```java
Java

package org.example;
import okhttp3.*;
import org.json.JSONObject;

import java.util.concurrent.TimeUnit;
    public class Main implements Runnable {
    private static final String AUTHORIZATION_HEADER = "Authorization";
    public static final String USERNAME = "USERNAME";

    public static final String PASSWORD = "PASSWORD";
        public void run() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("source", "mercadolibre_search");

        jsonObject.put("query", "iphone");
            Authenticator authenticator = (route, response) -> {
            String credential = Credentials.basic(USERNAME, PASSWORD);
                    return response
                    .request()
                    .newBuilder()
                    .header(AUTHORIZATION_HEADER, credential)
        };

        .build();
                var client = new OkHttpClient.Builder()
                .authenticator(authenticator)
                .header(AUTHORIZATION_HEADER, credential)

        .readTimeout(180, TimeUnit.SECONDS)
        var mediaType = MediaType.parse("application/json; charset=utf-8");
        var body = RequestBody.create(jsonObject.toString(), mediaType);
                var request = new Request.Builder()
                .url("https://realtime.oxylabs.io/v1/queries")
                .header(AUTHORIZATION_HEADER, credential)

        .post(body)
            try (var response = client.newCall(request).execute()) {
                if (response.body() != null) {
                    try (var responseBody = response.body()) {
                }
            }
        System.out.println(responseBody.string());
            } catch (Exception exception) {
        }

        System.out.println("Error: " + exception.getMessage());
    }

    System.exit(0);
        public static void main(String[] args) {
    }
}
```

{% endtab %}

{% tab title="new Thread(new Main()).start();" %}

```json
{
    -d '{ 
    "source": "mercadolibre_search",
}
```

{% endtab %}
{% endtabs %}

JSON [**Usamos el método de integración**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/realtime) Realtime [**síncrono en nuestros ejemplos. Si deseas usar**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/proxy-endpoint) Proxy Endpoint [**o la integración**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods/push-pull) Push-Pull [**asíncrona, consulta los**](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/integration-methods) métodos de integración

de la sección. `Opcionalmente, puedes incluir parámetros adicionales como`, `user_agent_type`renderizar (render), y más para personalizar tu solicitud de scraping. Lee más:

{% content-ref url="../../features" %}
[features](https://developers.oxylabs.io/documentation/es/soluciones-de-scraping/web-scraper-api/features)
{% endcontent-ref %}
