Saltar al contenido principal
A través del endpoint de Olostep /v1/crawls puedes rastrear un sitio web y obtener el contenido de todas las páginas.
  • Rastrea un sitio web y obtiene el contenido de todas las subpáginas (o limita la profundidad del rastreo)
  • Usa patrones especiales para rastrear páginas específicas (por ejemplo, /blog/**)
  • Pasa un webhook_url para recibir notificaciones cuando el rastreo se complete
  • Consulta de búsqueda para encontrar solo páginas específicas y ordenar por relevancia
Para detalles de la API, consulta la Referencia de la API del Endpoint de Crawl.

Instalación

pip install olostep

Iniciar un rastreo

Proporciona la URL de inicio, incluye/excluye globs de URL, y max_pages. Opcional: max_depth, include_external, include_subdomain, search_query, top_n, webhook_url, timeout.
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

crawl = client.crawls.create(
    start_url="https://olostep.com",
    max_pages=100,
    include_urls=["/**"],
    exclude_urls=["/collections/**"],
    include_external=False,
)

print(crawl.id, crawl.status)
Dado que todo en Olostep es un objeto, recibirás un objeto crawl en respuesta. El objeto crawl tiene algunas propiedades como id y status, que puedes usar para rastrear el progreso del rastreo.

Verificar el estado del rastreo

Consulta el rastreo para seguir el progreso hasta que el status sea completed.
# Usando el objeto crawl del paso anterior
info = crawl.info()
print(info.status, info.pages_count)

# O espera hasta que se complete
crawl.wait_till_done(check_every_n_secs=5)
Alternativamente, puedes pasar un webhook_url al iniciar el rastreo para ser notificado cuando el rastreo se complete.

Listar páginas (paginación/stream con cursor)

Obtén páginas e itera usando cursor y limit. Funciona mientras el rastreo está in_progress o completed.
# Itera todas las páginas (espera automáticamente a que el rastreo se complete, maneja la paginación)
for page in crawl.pages():
    print(page.url, page.retrieve_id)

Consulta de búsqueda (limitar a los N más relevantes)

Usa search_query al inicio, y opcionalmente filtra la lista con search_query. Limita la exploración por página con top_n.
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

crawl = client.crawls.create(
    start_url="https://olostep.com",
    max_pages=100,
    include_urls=["/**"],
    search_query="contact us",
    top_n=5,
)

for page in crawl.pages(search_query="contact us"):
    print(page.url)

Recuperar contenido

Usa el retrieve_id de cada página con /v1/retrieve para obtener html_content y/o markdown_content.
# Recupera contenido para cada página rastreada
for page in crawl.pages():
    content = page.retrieve(["markdown"])
    print(content.markdown_content)

Notas

  • La paginación se basa en cursor; repite solicitudes hasta que el cursor esté ausente.
  • Los campos de contenido en /v1/crawls/{crawl_id}/pages están obsoletos; prefiere /v1/retrieve.
  • Webhooks: establece webhook_url para recibir un POST cuando el rastreo se complete.

Precios

El rastreo cuesta 1 crédito por página rastreada.