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

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

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

Push-Pull es un método de integración asincrónico. Tras enviar un trabajo, recibirás rápidamente una JSON respuesta que contiene todos los detalles del trabajo, incluidos los parámetros del trabajo, ID y las URL para descargar resultados y comprobar el estado. Una vez procesado tu trabajo, te actualizaremos mediante una JSON carga enviada 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 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 notificaciones de callback entrantes, 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 una carga 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 remítete a 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 con el 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 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.

String

subdominio

El subdominio del sitio web.

String

updated_at

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

String

enlaces

La lista de enlaces relacionados con la entrada proporcionada.

Array JSON

enlaces:rel

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

String

enlaces:href

La URL al recurso.

String

enlaces:método

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 se ha completado y proporcionando una URL para descargar el contenido raspado. Esto significa que no necesitas comprobar el estado del trabajo manualmente. Una vez que los datos estén disponibles, te lo notificaremos, y todo lo que necesitas 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 al completarse enviando una JSON carga al URL de callback especificado. Esta carga indicará que el trabajo se ha completado y su estado se establecerá en done.

Sin embargo, si enviaste un trabajo sin usar servicio de callback, puedes comprobar el estado del trabajo manualmente. Recupera la URL desde el href campo en el rel:self sección del mensaje de respuesta recibido tras el envío del 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

Al completarse el trabajo, 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 finalizado. 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, permitiéndote seguir su tiempo de procesamiento.

Valores de estado

Parámetro
Descripción

pending

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

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 tendrá este aspecto: 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 resultados en una sola respuesta, por ejemplo:

Entrada

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

Salida

Esta tabla explica los tipos de resultado por defecto y otros disponibles basados en los encabezados incluidos en la carga de la solicitud API.

Parámetro render
Parámetro parse
Parámetro XHR
Salida por defecto
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 hay una respuesta de ejemplo de /results endpoint:

Los resultados pueden recuperarse automáticamente sin comprobar periódicamente el estado del trabajo configurando un Callback servicio. Para ello, especifica la URL de un servidor capaz de aceptar solicitudes HTTP(S) entrantes al enviar un trabajo. Cuando nuestro sistema complete el trabajo, POST una carga 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ámetros dentro de una sola solicitud por lotes.

Endpoint

El sistema tratará cada query o url enviado 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á trabajos idpara todas las palabras clave. Por ejemplo, si enviaste 50 palabras clave, devolveremos 50 trabajos únicos ids.

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

Entrada

Necesitas publicar los parámetros de consulta como una carga JSON. Así es como envías un trabajo por lotes:

Es posible que notes que el ejemplo de código anterior no explica cómo debe formatearse la carga JSON y señala un archivo JSON ya creado. A continuación está el contenido de keywords.json archivo, que contiene múltiples query 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:

Obtener la lista de direcciones IP del notificador

Es posible que quieras poner en 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 a continuación 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:

Programador

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?