Naar hoofdinhoud gaan

Overzicht

In plaats van de hele website in kaart te brengen, wil je je misschien richten op specifieke secties. In deze gids laten we je zien hoe je alleen de blog-URL’s van Stripe’s website kunt extraheren.

Alleen Blog-URL’s Extraheren

Om alleen blog-URL’s van Stripe’s website te extraheren, gebruik je het maps-eindpunt met padpatroonfilters. De parameter include_urls stelt je in staat om precies te specificeren welke URL-patronen je in de resultaten wilt opnemen.
import requests
import time
import json

# Configuratie
API_URL = 'https://api.olostep.com/v1'
API_KEY = '<your_olostep_api_key>'
HEADERS = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {API_KEY}'
}

# Starttijd voor latentie-tracking
start_time = time.time()

# Definieer de payload met URL-patronen om op te nemen
payload = {
    "url": "https://stripe.com",
    "include_urls": ["/blog", "/blog/**"]  # Komt overeen met /blog en alle paden onder /blog
}

# Voer de aanvraag uit
response = requests.post(f'{API_URL}/maps', headers=HEADERS, json=payload)

# Bereken latentie
latency = round((time.time() - start_time) * 1000, 2)
print(f"Aanvraag voltooid in {latency}ms")

# Verwerk de resultaten
data = response.json()
print(f"Gevonden {data['urls_count']} blog-URL's op Stripe's website")

# Print de eerste 10 URL's als voorbeeld
print("\nVoorbeeld blog-URL's:")
for url in data['urls'][:10]:
    print(f"- {url}")
    
# Sla blog-URL's op in een bestand voor verdere verwerking
with open('stripe_blog_urls.json', 'w') as f:
    json.dump(data, f, indent=2)
print(f"\nAlle blog-URL's opgeslagen in stripe_blog_urls.json")

Begrijpen van de URL-patronen

In het bovenstaande voorbeeld gebruiken we twee patroon specificaties:
  • /blog - Komt precies overeen met de hoofdpagina van de blog (https://stripe.com/blog)
  • /blog/** - Komt overeen met alle subpaden onder /blog, inclusief individuele blogposts, categoriepagina’s, enz.
Deze combinatie zorgt ervoor dat we alle bloggerelateerde content vastleggen terwijl we andere secties van de website uitsluiten.

Voorbeeld Reactie

{
  "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"
    // ... aanvullende URL's weggelaten voor beknoptheid
  ]
}

Blog-URL’s Filteren op Categorie

Je kunt je extractie verder verfijnen om je te richten op specifieke blogcategorieën. Bijvoorbeeld, als je alleen geïnteresseerd bent in Stripe’s engineering blogposts:
# Definieer de payload met specifiekere URL-patronen
payload = {
    "url": "https://stripe.com",
    "include_urls": ["/blog/engineering", "/blog/engineering/**"]
}

Volgende Stappen

Nu je alle blog-URL’s van Stripe hebt geëxtraheerd,
  1. Kun je hun inhoud individueel ophalen met behulp van de scrape API.
  2. Of, gebruik de volgende gids om de daadwerkelijke inhoud van deze blogpagina’s direct te crawlen en extraheren met ingebouwde filters.