circle-check
Documentation has been updated: see help center and changelog in one place.

Push-Pull

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

Push-Pull es nuestro método de integración recomendado para manejar de forma confiable grandes cantidades de datos.

circle-check

Push-Pull es un método de integración asíncrono. Al enviar el trabajo, recibirás de inmediato un JSON respuesta que contiene todos los detalles del trabajo, incluidos los parámetros del trabajo, el ID y las URLs para descargar el resultado y verificar el estado. Una vez que tu trabajo sea procesado, te actualizaremos mediante un JSON payload enviado a tu servidor, si proporcionaste una callback URL. Los resultados permanecen 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).

circle-info

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

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

Trabajo único

Endpoint

Este endpoint acepta solo un único query 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 a continuación. Los ejemplos en Python y PHP incluyen comentarios para mayor claridad.

curl --user "user:pass1" \
'https://data.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
 -d '{"source": "ENTER_SOURCE_HERE", "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"}'

Salida

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

Diccionario de datos

Para descripciones detalladas de los parámetros de entrada del trabajo, consulta la tabla a continuación o revisa las páginas de documentación específicas de los scrapers que te interesen.

Clave
Descripción
Tipo

created_at

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

String

client_id

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

String

client_notes

Notas enviadas por el cliente al enviar un trabajo.

String

content_encoding

Añade este parámetro si estás descargando imágenes. Aprende más aquí.

String

id

El ID único del trabajo.

String

statuses

El código de estado del trabajo de scraping o parsing. Puedes ver los códigos de estado descritos aquí.

Integer

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.

String

subdomain

El subdominio del sitio web.

String

updated_at

La fecha y hora en que el trabajo se actualizó por última vez. Para los trabajos finalizados (status es done o faulted), esta fecha y hora indica cuándo se terminó el trabajo.

String

links

La lista de enlaces, relacionados con la entrada proporcionada.

JSON Array

links:rel

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

String

links:href

La URL del recurso.

String

links:method

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

String

Callback

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

Entrada

Salida

Comprobar estado del trabajo

Si proporcionaste una URL de callback válida al enviar tu trabajo, te notificaremos cuando se complete enviando un JSON payload a la URL de callback especificada. Este payload indicará que el trabajo se ha completado y que su estado se ha establecido en done.

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

Endpoint

Entrada

Salida

Cuando el trabajo se complete, la API responderá con la información de la consulta en formato JSON. El estado del trabajo cambiará a done, indicando que el trabajo ha terminado. Puedes recuperar 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 te permite 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 está completado. Puedes recuperar el resultado consultando la URL proporcionada en el href campo bajo la sección rel:results por ejemplo: http://data.oxylabs.io/v1/queries/12345678900987654321/results.

faulted

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

Recuperar contenido del trabajo

Una vez que el trabajo esté listo para recuperarse, puedes usar la URL proporcionada en la respuesta bajo la sección rel:results sección. La URL se verá así: http://data.oxylabs.io/v1/queries/7173957294344910849/results.

Endpoints

Puedes recuperar diferentes tipos de resultados usando los siguientes endpoints:

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

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 y otros tipos de resultado disponibles según los encabezados incluidos en el payload de la solicitud de la API.

Parámetro render
Parámetro parse
Parámetro XHR
Salida predeterminada
Salida disponible

x

x

x

html

html

html

x

x

html

html

html

x

true

xhr

html, xhr

html

true

true

parsed

html, xhr, parsed

png

x

x

png

html, png

x

true

x

parsed

html, parsed

html

true

x

parsed

html, parsed

png

true

x

png

html, parsed, png

A continuación se muestra una respuesta de ejemplo del /results endpoint:

Los resultados se pueden recuperar automáticamente sin comprobar periódicamente el estado del trabajo configurando el Callback servicio. Para hacerlo, especifica la URL de un servidor que pueda aceptar solicitudes HTTP(S) entrantes al enviar un trabajo. Cuando nuestro sistema complete el trabajo, POST un payload 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 query o url valores de parámetro en una sola solicitud por lotes.

circle-exclamation

Endpoint

El sistema procesará cada query o url enviada como un trabajo separado. Si proporcionas una URL de callback, recibirás una llamada separada por cada palabra clave. De lo contrario, nuestra respuesta inicial contendrá identificadores de trabajo idpara todas las palabras clave. Por ejemplo, si enviaste 50 palabras clave, devolveremos 50 identificadores de trabajo únicos id.

circle-info

IMPORTANTE: Con el endpoint /batch solo puedes enviar listas de queryo urlvalores de parámetro (dependiendo de la source que uses). Todos los demás parámetros deben tener valores únicos.

Entrada

Debes enviar los parámetros de la consulta como un payload JSON. Así es como envías un trabajo por lotes:

Puede que notes que el ejemplo de código anterior no explica cómo debe formatearse el payload JSON y apunta a un archivo JSON ya preparado. A continuación se muestra el contenido del keywords.json archivo, que contiene múltiples query valores de parámetro:

...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:

Obtener lista de direcciones IP del notificador

Puede que quieras incluir en la lista blanca las IP que te envían mensajes de callback o obtener la lista de estas IP para otros fines. Puedes hacerlo mediante GETando este endpoint:

Endpoint

Entrada

Los ejemplos de código a continuación muestran cómo puedes acceder al /callbacker_ips endpoint:

Salida

La API devolverá la lista de IP 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 funcionalidad de integración Cloud .

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

Schedulerchevron-right

Última actualización

¿Te fue útil?