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 en formato JSON.

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

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 URL para descargar el resultado y comprobar el estado. Una vez procesado tu trabajo, te avisaremos mediante un JSON payload enviado a tu servidor, si proporcionaste una URL de callback . Los resultados permanecen disponibles para su recuperación durante al menos 24 horas después de finalizar.

Con Push-Pull, puedes subir tus resultados directamente a 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 las 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

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 siguientes. Los ejemplos de 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 siguiente o 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.

Cadena

client_id

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

Cadena

client_notes

Notas enviadas por el cliente al enviar un trabajo.

Cadena

content_encoding

Añade este parámetro si estás descargando imágenes. Más información aquí.

Cadena

id

El ID único del trabajo.

Cadena

estados

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

Entero

status

El estado del trabajo. pending significa que el trabajo aún se está procesando. done significa que hemos completado el trabajo. faulted significa que encontramos errores al intentar completar el trabajo y lo abandonamos.

Cadena

subdomain

El subdominio del sitio web.

Cadena

updated_at

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

Cadena

enlaces

La lista de enlaces, relacionada con la entrada proporcionada.

Array JSON

enlaces:rel

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

Cadena

enlaces:href

La URL del recurso.

Cadena

enlaces:método

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

Cadena

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 comprobar el estado del trabajo manualmente. Una vez que los datos estén aquí, te lo haremos saber, y todo lo que tienes que hacer ahora es recuperarlos.

Entrada

Salida

Comprobar el estado del trabajo

Si proporcionaste una URL de callback válida al enviar tu trabajo, te notificaremos cuando finalice 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 servicio de callback, puedes comprobar el estado del trabajo manualmente. Recupera 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 será similar 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

Al finalizar el trabajo, la API responderá con información de la consulta en formato JSON. El estado del trabajo cambiará a done, indicando que el trabajo ha finalizado. Puedes recuperar el contenido consultando uno de los enlaces proporcionados. Además, la respuesta incluirá la marca de tiempo de cuándo se actualizó por última vez el trabajo, lo que te permite seguir su tiempo de procesamiento.

Valores de estado

Parámetro
Descripción

pending

El trabajo todavía 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 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 te cobrará por ningún faulted trabajo.

Recuperar contenido del trabajo

Una vez que el trabajo esté listo para ser recuperado, puedes usar la URL proporcionada en la respuesta bajo la 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 resultado predeterminado y otros tipos de resultado disponibles según los encabezados incluidos en la carga útil de la solicitud de la API.

Parámetro de renderizado
Parámetro de parseo
Parámetro XHR
Salida predeterminada
Salida disponible

-

-

-

html

html

html

-

-

html

html

html

-

true

xhr

html, xhr

html

true

true

parsed

html, xhr, parsed

png

-

-

png

html, png

-

true

-

parsed

html, parsed

html

true

-

parsed

html, parsed

png

true

-

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 Callback el servicio. Para ello, 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 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.

Endpoint

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

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

Entrada

Debes enviar los parámetros de 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 señala un archivo JSON ya preparado. A continuación se muestra el contenido de keywords.json archivo, que contiene múltiples query valores de parámetro:

...y aquí tienes 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 Notifier

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 GETconsultando este endpoint:

Endpoint

Entrada

Los ejemplos de código siguientes muestran cómo puedes acceder a /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 integración Cloud funcionalidad.

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

Scheduler

Última actualización

¿Te fue útil?