For the complete documentation index, see llms.txt. This page is also available as Markdown.

Push-Pull

Descubre el método de integración Push-Pull para la Oxylabs Web Scraper API. Envía un trabajo y luego consulta el endpoint de resultados más tarde usando datos formateados en JSON.

Push-Pull es nuestro método de integración recomendado para manejar de forma fiable grandes volúmenes de datos.

Push-Pull es un método de integración asincrónico. Al enviar un trabajo, recibirás de inmediato una JSON respuesta que contiene todos los detalles del trabajo, incluidos los parámetros del trabajo, el ID y las URL para la descarga de resultados y la comprobación del estado. Una vez que tu trabajo se haya procesado, te informaremos mediante un JSON payload enviado a tu servidor, si proporcionaste un callback URL. Los resultados permanecerán disponibles para su recuperación durante al menos 24 horas después de la finalización.

Con Push-Pull, puedes cargar tus resultados directamente en tu almacenamiento en la nube (Google Cloud Storage, AWS S3, Alibaba Cloud OSS u otro almacenamiento compatible con S3).

Si prefieres no configurar un servicio para notificaciones entrantes de callback, puedes simplemente recuperar tus resultados periódicamente (sondeo).

También puedes explorar cómo funciona Push-Pull usando Postman.

Trabajo único

Punto final

Este punto final acepta solo una consulta o URL valor.

POST https://data.oxylabs.io/v1/queries

Entrada

Proporciona los parámetros del trabajo en un payload JSON como se muestra en los ejemplos siguientes. Los ejemplos de Python y PHP incluyen comentarios para mayor claridad.

curl --user "USERNAME:PASSWORD" \\
'https://data.oxylabs.io/v1/queries' \\
-H "Content-Type: application/json" \\
 -d '{"source": "universal", "url": "https://www.example.com", "geo_location": "United States", "callback_url": "https://your.callback.url", "storage_type": "s3", "storage_url": "s3://your.storage.bucket.url"}'
import requests
from pprint import pprint


# Estructura el payload.
payload = {
    "source": "universal", # Fuente que eliges, por ejemplo, "universal"
    "url": "https://www.example.com", # Consulta la documentación de la fuente específica para ver si debes usar "url" o "query"
    "geo_location": "United States", # Algunas fuentes aceptan códigos postales o coordenadas
    #"render" : "html", # Descomenta si quieres renderizar JavaScript dentro de la página
    #"render" : "png", # Descomenta si quieres tomar una captura de pantalla de una página web extraída
    #"parse" : True, # Comprueba qué fuentes admiten datos parseados
    "callback_url": "https://your.callback.url", # Obligatorio si usas el escuchador de callback
    "storage_type": "s3", 
    "storage_url": "s3://your.storage.bucket.url"
}

# Obtén la respuesta.
response = requests.request(
    'POST',
    'https://data.oxylabs.io/v1/queries',
    auth=('YOUR_USERNAME', 'YOUR_PASSWORD'), #Tus credenciales van aquí
    json=payload,
)

# Imprime la respuesta formateada en stdout.
pprint(response.json())

Salida

La API responderá con un JSON que contiene la información del trabajo, similar a esto:

Diccionario de datos

La tabla siguiente describe los campos devueltos en la respuesta del trabajo. Para los parámetros de entrada que puedes enviar, consulta la página de documentación de la fuente que estés usando.

Clave
Descripción
Tipo

created_at

La fecha y hora en que se creó el trabajo.

Cadena

client_id

El ID numérico asociado al nombre de usuario del cliente que realiza la solicitud.

Cadena

client_notes

Notas enviadas por el cliente al enviar un trabajo.

Cadena

content_encoding

La codificación del contenido devuelto. Establécela en tu payload cuando descargando imágenes; se devuelve en la respuesta del trabajo.

Cadena

id

El ID único del trabajo.

Cadena

statuses

Los códigos de estado del trabajo de scraping o parseo. Puedes ver los códigos de estado descritos aquí.

Entero

status

El estado del trabajo. pending significa que el trabajo todavía se está procesando. done significa que hemos completado el trabajo. faulted significa que encontramos errores al intentar completar el trabajo y desistimos.

Cadena

subdomain

El subdominio del sitio web.

Cadena

updated_at

La fecha y hora de la última actualización del trabajo. Para los trabajos que están terminados (status is done o faulted), esta fecha y hora indica cuándo se terminó el trabajo.

Cadena

_links

La lista de enlaces, relacionados con la entrada proporcionada.

Arreglo JSON

_links:rel

El tipo de enlace. self La URL contiene los metadatos del trabajo, mientras que results la URL contiene los resultados del trabajo.

Cadena

_links:href

La URL del recurso.

Cadena

_links:href_list

La lista de URL del recurso, una por página. Devuelta en lugar de href en entradas cuyo rel empieza con results-content. Consulta Recuperar contenido del trabajo.

Arreglo JSON

_links:method

El método HTTP que debe usarse para interactuar con una URL determinada.

Cadena

Callback

El callback es una solicitud POST que enviamos a tu máquina, informando de que la tarea de extracción de datos se ha completado y proporcionando una URL para descargar el contenido extraído. Esto significa que no necesitas comprobar el estado del trabajo manualmente. Una vez que los datos estén aquí, te avisaremos, y todo lo que necesitas hacer ahora es recuperarlos.

Entrada

Salida

Comprobar el estado del trabajo

Si proporcionó una URL de callback válida al enviar su trabajo, le notificaremos al completarse enviando una JSON carga útil a la URL de callback especificada. Esta carga útil indicará que el trabajo se ha completado y su estado se ha establecido en done.

Sin embargo, si envió un trabajo sin usar el servicio de Callback, puede comprobar el estado del trabajo manualmente. Obtenga la URL del href campo en la rel:self sección del mensaje de respuesta recibido después de enviar el trabajo. La URL para comprobar el estado del trabajo será similar a la siguiente: http://data.oxylabs.io/v1/queries/12345678900987654321. Consultar esta URL devolverá la información del trabajo, incluido su estado actual status.

Punto final

Entrada

Salida

Al completarse el trabajo, la API responderá con la información de la consulta en formato JSON. El estado del trabajo cambiará a done, lo que indica que el trabajo ha finalizado. Puede obtener el contenido consultando uno de los enlaces proporcionados. Además, la respuesta incluirá la marca de tiempo de la última actualización del trabajo, lo que le permitirá seguir su tiempo de procesamiento.

Valores de estado

Parámetro
Descripción

pending

El trabajo aún se está procesando y no se ha completado.

done

El trabajo se ha completado. Puede obtener el resultado consultando la URL proporcionada en el href campo bajo la rel:results sección, por ejemplo: http://data.oxylabs.io/v1/queries/12345678900987654321/results.

faulted

Hubo un problema con el trabajo y no pudimos completarlo. No se le cobrará por ningún faulted trabajo.

Recuperar contenido del trabajo

Una vez que el trabajo esté listo para recuperarse, puede usar la URL proporcionada en la respuesta bajo la rel:results sección. La URL tendrá este aspecto: http://data.oxylabs.io/v1/queries/12345678900987654321/results.

Las _links URL se devuelven con un http:// esquema. Sustitúyalo por https:// antes de llamarlas, para que sus credenciales no se envíen sin cifrar.

Endpoints

Puede obtener distintos tipos de resultados usando los siguientes endpoints:

También puede obtener múltiples tipos de resultado en una sola respuesta, por ejemplo:

Para obtener una sola página como contenido sin procesar, en lugar de dentro de un objeto JSON, use el endpoint content, donde {n} es el número de página, comenzando en 1. Los mismos valores de tipo se aplican.

Entrada

A continuación se muestran ejemplos de código que demuestran cómo usar el /results endpoint:

Salida

Esta tabla explica el tipo de resultado predeterminado según los parámetros incluidos en la carga útil de la solicitud de la API.

Parámetro Render
Parámetro Parse
Parámetro XHR
Salida predeterminada

-

-

-

html

html

-

-

html

html

-

true

xhr

html

true

true

parsed

png

-

-

png

-

true

-

parsed

html

true

-

parsed

png

true

-

png

De forma predeterminada, el /results endpoint devuelve solo la salida predeterminada para su carga útil. Para recibir tipos de resultado adicionales, añada el valores de tipo parámetro de consulta mostrado debajo de Endpoints anterior. Cada tipo solicitado se devuelve como una entrada separada en el results arreglo. Esta es la múltiples tipos de resultado característica, y funciona igual en Push-Pull y Realtime.

A continuación se muestra una respuesta de ejemplo del /results endpoint. Junto con results, devuelve un objeto de trabajo que contiene los mismos detalles del trabajo descritos en la Diccionario de datos, abreviado aquí. Algunas fuentes también devuelven _request, _response y session_info en cada resultado.

Los resultados pueden recuperarse automáticamente sin comprobar periódicamente el estado del trabajo mediante la configuración del Callback servicio de Callback. Para ello, especifique la URL de un servidor que pueda aceptar solicitudes HTTP(S) entrantes al enviar un trabajo. Cuando nuestro sistema complete el trabajo, enviará POST una carga útil JSON a la URL proporcionada, y el servicio de Callback descargará los resultados como se describe en el ejemplo de implementación de Callback.

Consulta por lotes

Scraper APIs admite enviar hasta 5.000 consulta o url valores del parámetro url en una sola solicitud por lotes.

Punto final

El sistema procesará cada consulta o url palabra clave enviada como un trabajo independiente. Si proporciona una URL de callback, recibirá una llamada independiente por cada palabra clave. De lo contrario, nuestra respuesta inicial contendrá ID de trabajo ids para todas las palabras clave. Por ejemplo, si envió 50 palabras clave, devolveremos 50 IDs de trabajo únicos id.

IMPORTANTE: Con /batch endpoint, solo puede enviar listas de consultao urlvalores del parámetro (según el origen que use). Todos los demás parámetros deben tener valores singulares.

Entrada

Debe enviar los parámetros de consulta como una carga útil JSON. Así se envía un trabajo por lotes:

Es posible que notes que el ejemplo de código anterior no explica cómo debe formatearse la carga útil JSON y señala un archivo JSON predefinido. A continuación se muestra el contenido de keywords.json archivo, que contiene múltiples consulta valores de parámetros:

...y aquí hay un keywords.json archivo de entrada por lotes, que contiene múltiples URLs:

Salida

La API responderá con un objeto JSON que contiene la información del trabajo para cada trabajo creado. La respuesta será similar a esta:

Cada entrada contiene los mismos campos que una respuesta de trabajo individual; {...} indica los campos omitidos aquí por brevedad.

Obtener la lista de direcciones IP del notificador

Es posible que quieras incluir en la lista blanca las IPs que te envían mensajes de callback o obtener la lista de estas IPs para otros fines. Puedes hacerlo GETconsultando este endpoint:

Punto final

Entrada

Los ejemplos de código siguientes muestran cómo puedes acceder a /callbacker_ips endpoint:

Salida

La API devolverá la lista de IPs que realizan solicitudes de callback a tu sistema:

Scheduler

Scheduler es un servicio que puedes usar para programar trabajos de scraping recurrentes.

Amplía la funcionalidad de la integración Push-Pull y se usa mejor junto con la integración en la nube funcionalidad.

Visita esta página para aprender cómo usar la función Scheduler:

Scheduler

Última actualización

¿Te fue útil?