Zum Hauptinhalt springen

Überblick

Anstatt die gesamte Website zu kartieren, möchtest du dich vielleicht auf bestimmte Abschnitte konzentrieren. In diesem Leitfaden zeigen wir dir, wie du nur die Blog-URLs von Stripes Website extrahierst.

Nur Blog-URLs extrahieren

Um nur die Blog-URLs von Stripes Website zu extrahieren, verwende den Maps-Endpunkt mit Pfadmusterfiltern. Der Parameter include_urls ermöglicht es dir, genau anzugeben, welche URL-Muster du in die Ergebnisse einbeziehen möchtest.
import requests
import time
import json

# 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 Latenzverfolgung
start_time = time.time()

# Definiere die Nutzlast mit einzuschließenden URL-Mustern
payload = {
    "url": "https://stripe.com",
    "include_urls": ["/blog", "/blog/**"]  # Übereinstimmung mit /blog und allen Pfaden unter /blog
}

# Anfrage stellen
response = requests.post(f'{API_URL}/maps', headers=HEADERS, json=payload)

# Latenz berechnen
latency = round((time.time() - start_time) * 1000, 2)
print(f"Anfrage abgeschlossen in {latency}ms")

# Ergebnisse verarbeiten
data = response.json()
print(f"{data['urls_count']} Blog-URLs auf Stripes Website gefunden")

# Die ersten 10 URLs als Beispiel ausgeben
print("\nBeispiel-Blog-URLs:")
for url in data['urls'][:10]:
    print(f"- {url}")
    
# Blog-URLs zur weiteren Verarbeitung in einer Datei speichern
with open('stripe_blog_urls.json', 'w') as f:
    json.dump(data, f, indent=2)
print(f"\nAlle Blog-URLs in stripe_blog_urls.json gespeichert")

Die URL-Muster verstehen

Im obigen Beispiel verwenden wir zwei Musterspezifikationen:
  • /blog - Entspricht genau der Hauptblogseite (https://stripe.com/blog)
  • /blog/** - Entspricht allen Unterpfaden unter /blog, einschließlich einzelner Blogbeiträge, Kategorieseiten usw.
Diese Kombination stellt sicher, dass wir alle blogbezogenen Inhalte erfassen, während andere Abschnitte der Website ausgeschlossen werden.

Beispielantwort

{
  "id": "map_xyz789abc",
  "urls_count": 278,
  "urls": [
    "https://stripe.com/blog",
    "https://stripe.com/blog/page/1",
    "https://stripe.com/blog/page/2",
    "https://stripe.com/blog/engineering",
    "https://stripe.com/blog/product",
    "https://stripe.com/blog/how-we-built-it-usage-based-billing",
    "https://stripe.com/blog/using-ml-to-detect-and-respond-to-performance-degradations",
    "https://stripe.com/blog/stripe-radar-responded-to-card-testing",
    "https://stripe.com/blog/future-of-real-time-payments",
    "https://stripe.com/blog/ml-flywheel-improve-models"
    // ... zusätzliche URLs aus Platzgründen weggelassen
  ]
}

Blog-URLs nach Kategorie filtern

Du kannst deine Extraktion weiter verfeinern, um dich auf bestimmte Blog-Kategorien zu konzentrieren. Wenn du zum Beispiel nur an Stripes Engineering-Blogbeiträgen interessiert bist:
# Definiere die Nutzlast mit spezifischeren URL-Mustern
payload = {
    "url": "https://stripe.com",
    "include_urls": ["/blog/engineering", "/blog/engineering/**"]
}

Nächste Schritte

Nachdem du nun alle Blog-URLs von Stripe extrahiert hast,
  1. kannst du deren Inhalte einzeln mit der Scrape-API abrufen.
  2. Oder, du verwendest den nächsten Leitfaden, um die tatsächlichen Inhalte dieser Blogseiten direkt mit eingebauten Filtern zu crawlen und zu extrahieren.