Passer au contenu principal

Vue d’ensemble

L’endpoint Batches d’Olostep vous permet de lancer un lot de jusqu’à 10 000 URLs et de récupérer le contenu en 5 à 7 minutes. Vous pouvez lancer jusqu’à 10 lots à la fois pour extraire le contenu de 100 000 URLs en une seule fois. Si vous avez besoin de plus de capacité, veuillez nous contacter. Cela est utile si vous avez déjà les URLs que vous souhaitez traiter — par exemple, pour agréger des données pour l’analyse, construire un outil de recherche spécialisé ou surveiller plusieurs sites web pour des changements. Dans ce guide, nous allons vous montrer comment démarrer un lot avec une liste d’URLs et récupérer le contenu au format markdown.

Gist avec le code complet

Voici tout le code dans un seul gist que vous pouvez copier et coller pour essayer l’extraction par lot avec Olostep : https://gist.github.com/olostep/e903f2e4fc28f8093b834b4df68b8031 Dans ce gist, nous avons montré comment démarrer un lot avec 5 requêtes de recherche Google, vérifier le statut et récupérer le contenu pour chaque élément.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :
  • Une clé API Olostep valide. Vous pouvez en obtenir une en vous inscrivant sur Olostep.
  • Python installé sur votre système.
  • Les bibliothèques requests et hashlib (installez requests avec pip install requests si nécessaire).

Étape 1 : Créer un lot à partir d’URLs locales

Si vous avez déjà une liste d’URLs que vous souhaitez traiter, vous pouvez les définir directement dans votre script. Sinon, vous pouvez les lire à partir d’un fichier ou d’une base de données.
import requests
import hashlib

API_KEY = "YOUR_API_KEY"

def create_hash_id(url):
    return hashlib.sha256(url.encode()).hexdigest()[:16]

def compose_items_array():
    urls = [
        "https://www.google.com/search?q=nikola+tesla&gl=us&hl=en",
        "https://www.google.com/search?q=alexander+the+great&gl=us&hl=en",
        "https://www.google.com/search?q=google+solar+eclipse&gl=us&hl=en",
        "https://www.google.com/search?q=crispr&gl=us&hl=en",
        "https://www.google.com/search?q=genghis%20khan&gl=us&hl=en"
    ]
    return [{"custom_id": create_hash_id(url), "url": url} for url in urls]

def start_batch(items):
    payload = {
        "items": items
    }
    headers = {"Authorization": f"Bearer {API_KEY}"}
    response = requests.post(
        "https://api.olostep.com/v1/batches",
        headers=headers,
        json=payload
    )
    return response.json()["id"]

if __name__ == "__main__":
    items = compose_items_array()
    batch_id = start_batch(items)
    print("Lot démarré. ID :", batch_id)

Étape 2 : Surveiller le statut du lot

Une fois le lot démarré, vous pouvez surveiller son statut en utilisant le batch_id qui est retourné lorsque vous démarrez le lot.
import requests

def check_batch_status(batch_id):
    headers = {"Authorization": f"Bearer {API_KEY}"}
    response = requests.get(
        f"https://api.olostep.com/v1/batches/{batch_id}",
        headers=headers
    )
    return response.json()["status"]
Vous pouvez interroger le statut toutes les quelques secondes (par exemple, 10 secondes) jusqu’à ce que le lot soit terminé :
import time

def recursive_check(batch_id):
    status = check_batch_status(batch_id)
    print("Statut :", status)
    if status == "completed":
        print("Le lot est terminé !")
    else:
        time.sleep(60)
        recursive_check(batch_id)

Étape 3 : Récupérer les éléments complétés

Une fois que le lot est marqué comme terminé, récupérez les éléments traités.
import requests

def get_completed_items(batch_id):
    headers = {"Authorization": f"Bearer {API_KEY}"}
    response = requests.get(
        f"https://api.olostep.com/v1/batches/{batch_id}/items",
        headers=headers
    )
    return response.json()["items"]
Chaque élément inclura un retrieve_id que vous pouvez utiliser pour récupérer le contenu extrait.
items = get_completed_items(batch_id)
for item in items:
    print(f"URL : {item['url']}\nID personnalisé : {item['custom_id']}\nID de récupération : {item['retrieve_id']}\n---")

Étape 4 : Récupérer le contenu

Utilisez le retrieve_id pour obtenir le contenu extrait en markdown, html ou json. Voici un exemple pour récupérer le contenu au format markdown :
def retrieve_content(retrieve_id):
    url = "https://api.olostep.com/v1/retrieve"
    headers = {"Authorization": f"Bearer {API_KEY}"}
    params = {"retrieve_id": retrieve_id}

    response = requests.get(url, headers=headers, params=params)
    return response.json()

# Exemple d'utilisation :
items = get_completed_items(batch_id)
for item in items:
    content = retrieve_content(item['retrieve_id'])
    print(content)

Contenu hébergé

Nous hébergeons également le contenu pendant 7 jours, vous pouvez donc le récupérer plusieurs fois sans refaire l’extraction. Exemple d’une URL hébergée pour le contenu markdown

Exemples d’utilisation

1. Construire des moteurs de recherche

Utilisez Olostep pour extraire le contenu de sites web spécifiques à une industrie (juridique, médical, IA) et construire une base de données consultable.

2. Surveillance de sites web

Surveillez la disponibilité des produits, les changements de prix ou les mises à jour d’actualités sur plusieurs sites web en programmant des extractions par lot quotidiennes.

3. Surveillance des réseaux sociaux

Extrayez les mentions de votre marque ou de mots-clés sur des forums ou des sources de contenu et extrayez des données structurées.

4. Agrégateurs

Construisez un tableau d’offres d’emploi, un agrégateur d’actualités ou une plateforme de listes immobilières en extrayant des données de dizaines de sources.

Conclusion

Avec l’extraction par lot, vous pouvez extraire le contenu de jusqu’à 100k URLs rapidement et efficacement. Que vous construisiez des outils de recherche, des agrégateurs ou des systèmes de surveillance, les lots Olostep simplifient le travail. Vous souhaitez extraire uniquement des données structurées ? Utilisez les Parsers pour obtenir uniquement les champs dont vous avez besoin. Besoin d’aide ? Contactez info@olostep.com pour obtenir du support ou pour que nous écrivions des scripts personnalisés pour votre cas d’utilisation.