Scraping APIGuía rápidaEmpezando

Comenzando

Flujo de Solicitud

  1. Enviar una Tarea Enviar una solicitud POST a /api/v1/scraper/request.
  2. Manejar la Respuesta
    1. HTTP 200 (Éxito): Los datos se devuelven directamente en el cuerpo de la respuesta.
    2. HTTP 201 (Procesando): Use el taskId proporcionado para consultar los resultados.
  3. 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ódigoSignificadoAcción
200ÉxitoUse los datos del cuerpo de la respuesta directamente.
201Tarea en progresoConsulte /result/{taskId} (intervalo recomendado: 1-5 segundos).
400Parámetros inválidosPor favor, verifique si los parámetros de la tarea son válidos.
429Límite de velocidad excedidoReduzca la frecuencia de las solicitudes o contacte con el soporte para ajustar la cuota.
500Error interno del servidorReintente 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ámetroTipoDescripción
actorstringServicio de raspado (ej., scraper.shopee).
inputobjectParámetros específicos de la tarea (ej., acción, url).
proxyobjectConfiguración de proxy opcional con campo de país.

Notas

  1. Recomendaciones para Consultas
    1. Intervalo: 1-5 segundos.
    2. Tiempo de espera: Establezca un límite máximo de reintentos (ej., 10 intentos).
  2. Consejos de depuración
    1. Pruebe primero con URLs sencillas.