Zum Hauptinhalt springen

Überblick

Der Batches-Endpunkt von Olostep ermöglicht es dir, ein Batch von bis zu 10.000 URLs zu starten und den Inhalt in 5–7 Minuten zurückzubekommen. Du kannst bis zu 10 Batches gleichzeitig starten, um Inhalte von 100.000 URLs auf einmal zu extrahieren. Wenn du mehr Skalierung benötigst, kontaktiere uns bitte. Dies ist nützlich, wenn du bereits die URLs hast, die du verarbeiten möchtest – zum Beispiel, um Daten für Analysen zu aggregieren, ein spezialisiertes Suchwerkzeug zu erstellen oder mehrere Websites auf Änderungen zu überwachen. In diesem Leitfaden zeigen wir dir, wie du ein Batch mit einer Liste von URLs startest und den Inhalt im Markdown-Format abrufst.

Gist mit vollständigem Code

Hier ist der gesamte Code in einem Gist, den du kopieren und einfügen kannst, um Batch-Scraping mit Olostep auszuprobieren: https://gist.github.com/olostep/e903f2e4fc28f8093b834b4df68b8031 In diesem Gist haben wir gezeigt, wie man ein Batch mit 5 Google-Suchanfragen startet, den Status überprüft und den Inhalt für jedes Element abruft.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:
  • Einen gültigen Olostep API-Schlüssel. Du kannst einen erhalten, indem du dich bei Olostep anmeldest.
  • Python auf deinem System installiert.
  • Die requests- und hashlib-Bibliotheken (installiere requests mit pip install requests, falls nötig).

Schritt 1: Erstelle ein Batch aus lokalen URLs

Wenn du bereits eine Liste von URLs hast, die du verarbeiten möchtest, kannst du sie direkt in deinem Skript definieren. Andernfalls kannst du sie aus einer Datei oder Datenbank lesen.
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("Batch gestartet. ID:", batch_id)

Schritt 2: Überwache den Batch-Status

Sobald das Batch gestartet ist, kannst du seinen Status mit der batch_id überwachen, die zurückgegeben wird, wenn du das Batch startest.
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"]
Du kannst den Status alle paar Sekunden (z.B. alle 10 Sekunden) abfragen, bis das Batch abgeschlossen ist:
import time

def recursive_check(batch_id):
    status = check_batch_status(batch_id)
    print("Status:", status)
    if status == "completed":
        print("Batch ist abgeschlossen!")
    else:
        time.sleep(60)
        recursive_check(batch_id)

Schritt 3: Abgeschlossene Elemente abrufen

Sobald das Batch als abgeschlossen markiert ist, rufe die verarbeiteten Elemente ab.
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"]
Jedes Element enthält eine retrieve_id, die du verwenden kannst, um den gescrapten Inhalt abzurufen.
items = get_completed_items(batch_id)
for item in items:
    print(f"URL: {item['url']}\nCustom ID: {item['custom_id']}\nRetrieve ID: {item['retrieve_id']}\n---")

Schritt 4: Den Inhalt abrufen

Verwende die retrieve_id, um den extrahierten Inhalt in Markdown, HTML oder JSON zu erhalten. Hier ist ein Beispiel, um den Inhalt im Markdown-Format abzurufen:
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()

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

Gehosteter Inhalt

Wir hosten den Inhalt auch für 7 Tage, sodass du ihn mehrfach abrufen kannst, ohne erneut zu scrapen. Beispiel einer gehosteten URL für Markdown-Inhalt

Beispielanwendungsfälle

1. Suchmaschinen aufbauen

Verwende Olostep, um Inhalte von branchenspezifischen Websites (rechtlich, medizinisch, KI) zu extrahieren und eine durchsuchbare Datenbank zu erstellen.

2. Website-Überwachung

Überwache die Verfügbarkeit von Produkten, Preisänderungen oder Nachrichtenaktualisierungen auf mehreren Websites, indem du tägliche Batch-Scrapes planst.

3. Social Media Monitoring

Scrape Erwähnungen deiner Marke oder Schlüsselwörter in Foren oder Inhaltsquellen und extrahiere strukturierte Daten.

4. Aggregatoren

Erstelle ein Job-Board, einen Nachrichtenaggregator oder eine Immobilienplattform, indem du Daten aus Dutzenden von Quellen ziehst.

Fazit

Mit Batch-Scraping kannst du Inhalte von bis zu 100.000 URLs schnell und effizient extrahieren. Egal, ob du Suchwerkzeuge, Aggregatoren oder Überwachungssysteme baust, Olostep Batches vereinfachen die Arbeit. Möchtest du nur strukturierte Daten extrahieren? Verwende Parsers, um nur die Felder zu erhalten, die du benötigst. Brauchst du Hilfe? Kontaktiere info@olostep.com für Unterstützung oder lass uns maßgeschneiderte Skripte für deinen Anwendungsfall schreiben.