Documentation Index
Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
Use this file to discover all available pages before exploring further.
Überblick
Dieser Leitfaden zeigt Ihnen, wie Sie:
- Einen Crawl speziell für die Blogbeiträge von Stripe starten
- Den Fortschritt des Crawls überwachen
- Die gecrawlten Inhalte abrufen und verarbeiten
Crawlen der Blog-Seiten von Stripe
Um die Blog-Seiten von Stripe zu crawlen, verwenden Sie den Crawls-Endpunkt mit Musterabgleich, um gezielt bestimmte Blog-URLs anzusprechen. Dadurch wird der vollständige HTML-Inhalt jeder Seite abgerufen, den Sie dann verarbeiten können, um die benötigten Informationen zu extrahieren.
import requests
import time
import json
from datetime import datetime
# Konfiguration
API_URL = 'https://api.olostep.com/v1'
API_KEY = '<your_olostep_api_key>'
HEADERS = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {API_KEY}'
}
# Startzeit für die Verfolgung der Crawldauer aufzeichnen
crawl_start_time = time.time()
print(f"[{datetime.now().strftime('%H:%M:%S')}] Start des Stripe-Blog-Crawls...")
# Starten Sie einen Crawl, der sich auf die Engineering-Blogbeiträge von Stripe konzentriert
# Sie können die Muster basierend auf Ihren spezifischen Interessen anpassen
payload = {
"start_url": "https://stripe.com/blog",
"include_urls": ["/blog/engineering/**"], # Fokus auf Engineering-Beiträge
"max_pages": 25 # Begrenzung auf 25 Seiten für dieses Beispiel
}
# Starten Sie den Crawl
print("Starten des Crawls der Engineering-Blogbeiträge von Stripe...")
response = requests.post(f'{API_URL}/crawls', headers=HEADERS, json=payload)
data = response.json()
crawl_id = data['id']
print(f"Crawl gestartet mit ID: {crawl_id}")
# Überwachen Sie den Fortschritt des Crawls
while True:
status_response = requests.get(f'{API_URL}/crawls/{crawl_id}', headers=HEADERS)
status_data = status_response.json()
print(f"Crawl-Status: {status_data['status']} - Seiten gecrawlt: {status_data.get('pages_count', 0)}")
if status_data['status'] == 'completed' or status_data['status'] == 'failed':
break
# Warten Sie 5 Sekunden, bevor Sie erneut überprüfen
time.sleep(5)
# Berechnen und anzeigen der Crawldauer
crawl_duration = time.time() - crawl_start_time
print(f"[{datetime.now().strftime('%H:%M:%S')}] Crawl abgeschlossen in {crawl_duration:.2f} Sekunden")
Umwandeln von Blog-Inhalten in Markdown
Eine leistungsstarke Möglichkeit, die gecrawlten Inhalte zu nutzen, besteht darin, sie in das Markdown-Format zu konvertieren, das ideal ist, um in LLMs eingespeist oder eine Wissensdatenbank erstellt zu werden. So können Sie die Blog-Inhalte abrufen und in Markdown konvertieren:
import requests
import time
import json
from datetime import datetime
import os
from concurrent.futures import ThreadPoolExecutor, as_completed
# Konfiguration
API_URL = 'https://api.olostep.com/v1'
API_KEY = '<your_olostep_api_key>'
HEADERS = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {API_KEY}'
}
# Funktion zum Abrufen von Inhalten im Markdown-Format
def retrieve_content(retrieve_id, formats):
params = {
"retrieve_id": retrieve_id,
"formats": json.dumps(formats)
}
response = requests.get(f"{API_URL}/retrieve", headers=HEADERS, params=params)
return response.json()
# Fortsetzung des vorherigen Crawl-Beispiels
if status_data['status'] == 'completed':
print(f"\nCrawl abgeschlossen! {status_data['pages_count']} Seiten abgerufen.")
pages_response = requests.get(f'{API_URL}/crawls/{crawl_id}/pages', headers=HEADERS)
pages_data = pages_response.json()
# Erstellen Sie das Ausgabeverzeichnis, falls es nicht existiert
os.makedirs("output", exist_ok=True)
# Vorbereitung zum Sammeln von Markdown-Inhalten
markdown_pages = []
total_pages = len(pages_data['pages'])
# Verarbeiten Sie Seiten parallel, um Markdown-Inhalte zu erhalten
with ThreadPoolExecutor(max_workers=10) as executor:
# Erstellen Sie Futures für die Inhaltsabfrage
future_to_page = {
executor.submit(retrieve_content, page['retrieve_id'], ["markdown"]): page
for page in pages_data['pages']
}
# Verarbeiten Sie Ergebnisse, sobald sie abgeschlossen sind
for i, future in enumerate(as_completed(future_to_page), 1):
page = future_to_page[future]
url = page['url']
print(f"Verarbeitung {i}/{total_pages}: {url}")
try:
content_data = future.result()
if content_data and "markdown_content" in content_data:
markdown_pages.append({
'url': url,
'title': page['title'],
'markdown_content': content_data['markdown_content']
})
print(f"✓ Markdown-Inhalt für {url} abgerufen")
else:
print(f"⚠ Kein Markdown-Inhalt für {url}")
except Exception as e:
print(f"❌ Fehler beim Abrufen des Inhalts für {url}: {str(e)}")
# Speichern Sie alle Markdown-Inhalte in einer einzigen Datei
output_file = "output/stripe_blog_markdown.md"
with open(output_file, "w", encoding="utf-8") as f:
for page in markdown_pages:
# Schreiben Sie den Seitenkopf mit Titel und URL
f.write(f"URL: {page['url']}\n\n")
# Schreiben Sie den Markdown-Inhalt
f.write(f"{page['markdown_content']}\n\n")
# Fügen Sie einen Trenner zwischen den Seiten hinzu
f.write("---\n\n")
print(f"✓ Markdown-Inhalt von {page['url']} hinzugefügt")
print(f"\n✅ Prozess abgeschlossen! Alle Markdown-Inhalte wurden in '{output_file}' gespeichert")
print(f"Gesamtzahl der verarbeiteten Seiten: {len(markdown_pages)}")
else:
print(f"Crawl fehlgeschlagen mit Status: {status_data['status']}")
Beispiel für Markdown-Ausgabe
Die resultierende Markdown-Datei enthält alle gecrawlten Blog-Inhalte in einem sauberen, strukturierten Format:
URL: https://stripe.com/blog/using-ml-to-detect-and-respond-to-performance-degradations
## Einsatz von ML zur Erkennung und Reaktion auf Leistungsverschlechterungen
Von Jane Smith, Senior Engineer bei Stripe
Bei Stripe verarbeiten wir täglich Millionen von API-Anfragen...
---
URL: https://stripe.com/blog/building-robust-payment-systems
## Aufbau eines robusten Zahlungssystems
Von John Doe, Engineering Manager
Zuverlässigkeit steht im Mittelpunkt der Infrastruktur von Stripe...
---
Nächste Schritte
Nachdem Sie erfolgreich Inhalte aus dem Blog von Stripe gecrawlt und extrahiert haben, können Sie:
- Ihren Crawl erweitern: Ändern Sie den Parameter
include_urls, um andere Abschnitte des Stripe-Blogs zu crawlen
- Regelmäßige Updates implementieren: Richten Sie einen geplanten Job ein, um regelmäßig nach neuen Inhalten zu crawlen
- Tiefere Analysen durchführen: Verwenden Sie NLP-Tools, um Erkenntnisse aus den Blog-Inhalten zu gewinnen
- Suchmaschine aufbauen: Erstellen Sie eine durchsuchbare Datenbank der Blog-Inhalte von Stripe
- In LLMs einspeisen: Verwenden Sie die Markdown-Inhalte als Kontext für LLMs, um Fragen zu den Engineering-Praktiken von Stripe zu beantworten
Mit den Content-Crawling-Fähigkeiten von Olostep können Sie leistungsstarke Tools zum Überwachen und Analysieren der Content-Strategie jeder Website erstellen.