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.
Visita el repositorio de Oxylabs en GitHub para un ejemplo completo y funcional de integración Push-Pull en Python.
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).
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/queriesEntrada
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"}'import requests
from pprint import pprint
# Estructurar payload.
payload = {
"source": "ENTER_SOURCE_HERE", # Fuente que eliges p. ej. "universal"
"url": "https://www.example.com", # Comprueba la fuente específica si debes usar "url" o "query"
"geo_location": "United States", # Algunas fuentes aceptan código postal 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 raspada
#"parse" : true, # Comprueba qué fuentes soportan datos parseados
#"callback_url": "https://your.callback.url", #requerido si usas listener de callback
"callback_url": "https://your.callback.url",
"storage_type": "s3",
"storage_url": "s3://your.storage.bucket.url"
}
# Obtener respuesta.
response = requests.request(
'POST',
'https://data.oxylabs.io/v1/queries',
auth=('YOUR_USERNAME', 'YOUR_PASSWORD'), #Tus credenciales van aquí
json=payload,
)
# Imprimir 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
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.
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
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
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.
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.
Batch requests are currently not supported para chatgpt y perplexity fuentes.
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.
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?

