Comenzando
Flujo de Solicitud
- Enviar una Tarea
Enviar una solicitud
POST
a/api/v1/scraper/request
. - Manejar la Respuesta
- HTTP 200 (Éxito): Los datos se devuelven directamente en el cuerpo de la respuesta.
- HTTP 201 (Procesando): Use el
taskId
proporcionado para consultar los resultados.
- Consultar los Resultados
Para tareas asíncronas, llame repetidamente a
/api/v1/scraper/result/{taskId}
hasta que los datos estén listos (HTTP 200).
Códigos de Estado HTTP
Código | Significado | Acción |
---|---|---|
200 | Éxito | Use los datos del cuerpo de la respuesta directamente. |
201 | Tarea en progreso | Consulte /result/{taskId} (intervalo recomendado: 1-5 segundos). |
400 | Parámetros inválidos | Por favor, verifique si los parámetros de la tarea son válidos. |
429 | Límite de velocidad excedido | Reduzca la frecuencia de las solicitudes o contacte con el soporte para ajustar la cuota. |
500 | Error interno del servidor | Reintente después de 1 minuto; contacte con el soporte si persiste. |
Ejemplos de Código
Flujo Completo
import requests
import json
import time
API_KEY = "YOUR_API_KEY"
HOST = "api.scrapeless.com"
# Submit task
task_url = f"https://{HOST}/api/v1/scraper/request"
payload = json.dumps({
"actor": "scraper.shopee",
"input": {"url": "https://shopee.tw/a-i.10228173.24803858474"}
})
headers = {'Content-Type': 'application/json', 'x-api-token': API_KEY}
response = requests.post(task_url, headers=headers, data=payload)
# Handle response
if response.status_code == 200:
print("Data:", response.json())
elif response.status_code == 201:
task_id = response.json()["taskId"]
print(f"Task queued. Polling ID: {task_id}")
# Poll for results (max 10 attempts, 3s interval)
max_retries = 10
for _ in range(max_retries):
result_url = f"https://{HOST}/api/v1/scraper/result/{task_id}"
result_response = requests.get(result_url, headers=headers)
if result_response.status_code == 200:
print("Result:", result_response.json())
break
elif result_response.status_code == 201:
print("Still processing. Retrying in 3s...")
time.sleep(3)
else:
print(f"Error {result_response.status_code}: {result_response.text}")
break
else:
print(f"Request failed: {response.status_code} - {response.text}")
cURL (Ejemplo de Consulta)
curl --location --request GET 'https://api.scrapeless.com/api/v1/scraper/result/30681c8b-bfd3-48eb-a7c9-006e40b00591' \
--header 'x-api-token: YOUR_API_KEY' \
--header 'Content-Type: application/json'
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
actor | string | Servicio de raspado (ej., scraper.shopee). |
input | object | Parámetros específicos de la tarea (ej., acción, url). |
proxy | object | Configuración de proxy opcional con campo de país. |
Notas
- Recomendaciones para Consultas
- Intervalo: 1-5 segundos.
- Tiempo de espera: Establezca un límite máximo de reintentos (ej., 10 intentos).
- Consejos de depuración
- Pruebe primero con URLs sencillas.