Passer au contenu principal
Grâce à l’endpoint /v1/crawls d’Olostep, tu peux crawler un site web et obtenir le contenu de toutes les pages.
  • Crawler un site web et obtenir le contenu de toutes les sous-pages (ou limiter la profondeur du crawl)
  • Utiliser des motifs spéciaux pour crawler des pages spécifiques (par exemple, /blog/**)
  • Passer une webhook_url pour être notifié lorsque le crawl est terminé
  • Requête de recherche pour ne trouver que des pages spécifiques et trier par pertinence
Pour les détails de l’API, voir la Référence de l’API de l’Endpoint Crawl.

Installation

pip install olostep

Démarrer un crawl

Fournis l’URL de départ, inclure/exclure des motifs d’URL, et max_pages. Optionnel : 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)
Puisque tout dans Olostep est un objet, tu recevras un objet crawl en réponse. L’objet crawl a quelques propriétés comme id et status, que tu peux utiliser pour suivre le crawl.

Vérifier le statut du crawl

Sonde le crawl pour suivre la progression jusqu’à ce que le status soit completed.
# En utilisant l'objet crawl de l'étape précédente
info = crawl.info()
print(info.status, info.pages_count)

# Ou attendre jusqu'à ce que ce soit terminé
crawl.wait_till_done(check_every_n_secs=5)
Alternativement, tu peux passer une webhook_url lors du démarrage du crawl pour être notifié lorsque le crawl est terminé.

Lister les pages (pagination/flux avec curseur)

Récupère les pages et itère en utilisant cursor et limit. Fonctionne pendant que le crawl est in_progress ou completed.
# Itérer toutes les pages (attend automatiquement la fin du crawl, gère la pagination)
for page in crawl.pages():
    print(page.url, page.retrieve_id)

Requête de recherche (limiter aux N plus pertinents)

Utilise search_query au démarrage, et filtre éventuellement la liste avec search_query. Limite l’exploration par page avec 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)

Récupérer le contenu

Utilise le retrieve_id de chaque page avec /v1/retrieve pour récupérer html_content et/ou markdown_content.
# Récupérer le contenu pour chaque page crawlée
for page in crawl.pages():
    content = page.retrieve(["markdown"])
    print(content.markdown_content)

Remarques

  • La pagination est basée sur le curseur ; répète les requêtes jusqu’à ce que le cursor soit absent.
  • Les champs de contenu sur /v1/crawls/{crawl_id}/pages sont dépréciés ; préfère /v1/retrieve.
  • Webhooks : définis webhook_url pour recevoir un POST lorsque le crawl est terminé.

Tarification

Le crawl coûte 1 crédit par page crawlée.