Mehrere Seiten einer Website crawlen
Diese Funktion startet bei einer Internetadresse und folgt den dort gefundenen internen Links, um bis zu 25 zusammenhängende Seiten einer Website zu erfassen – statt jede Unterseite einzeln von Hand aufzurufen. Gedacht für alle, die einen Überblick über den Inhalt eines mehrseitigen Auftritts benötigen.
Wie der Durchlauf abläuft
Ausgehend von der Startadresse folgt die Funktion internen Links und ruft die gefundenen Unterseiten nacheinander auf, bis zu 25 Seiten pro Durchlauf. Jede erfasste Seite liefert ihren eigenen Inhalt zurück, sodass am Ende ein Überblick über mehrere zusammenhängende Seiten der Website entsteht, statt nur einer einzelnen, isoliert betrachteten Seite ohne Zusammenhang zu den übrigen. Die Reihenfolge der erfassten Seiten richtet sich danach, wie die internen Links auf der Startseite und den nachfolgenden Seiten angeordnet sind.
Wofür sich das eignet
Vor einem Relaunch lässt sich so der Inhalt aller wichtigen Unterseiten einer alten Website in einem Durchgang erfassen, statt jede Seite einzeln zu öffnen und von Hand zu kopieren. Auch für ein Übersetzungsprojekt, bei dem mehrere Unterseiten in eine andere Sprache übertragen werden sollen, ist ein gesammelter Ausgangspunkt praktischer als 25 einzelne Abrufe nacheinander, die sonst jeweils von Hand gestartet und einzeln abgeglichen werden müssten.
Grenzen des Durchlaufs
25 Seiten pro Durchlauf reichen für die meisten kleineren Auftritte, für eine sehr große Website mit hunderten Unterseiten braucht es mehrere Durchläufe mit jeweils eigener Startadresse innerhalb der Struktur der Website. Seiten außerhalb der ursprünglichen Domain werden dabei nicht automatisch mit erfasst, auch wenn von einer Unterseite aus dorthin verlinkt wird; für eine externe Adresse starten Sie einen eigenen Durchlauf mit dieser Adresse als neuem Startpunkt.
Preis pro Seite
$0.040 pro Anfrage zuzüglich $0.001 pro erfasster Seite, in US-Dollar. Ein Durchlauf über 25 Seiten kostet damit rund $0.065, unabhängig davon, wie umfangreich der Inhalt jeder einzelnen Seite ausfällt oder wie viele Bilder und Absätze sie enthält. Ein Abonnement ist dafür nicht nötig, abgerechnet wird ausschließlich der tatsächlich ausgeführte Durchlauf, unabhängig davon, wie viele der 25 möglichen Seiten am Ende tatsächlich erreichbar waren.
Anwendungsfälle
Alten Webauftritt vor dem Relaunch inventarisieren
Schneider IT-Systeme GmbH & Co. KG crawlt die eigene alte Website vor dem Relaunch, um den Inhalt aller wichtigen Unterseiten in einem Durchgang zu erfassen.
Mehrere Unterseiten für ein Übersetzungsprojekt sammeln
Ein Übersetzungsbüro erfasst die wichtigsten Unterseiten der Website eines Kunden in einem Durchlauf, statt jede einzeln aufzurufen.
Produktkategorien eines Partnerangebots im Überblick
Weber Metallbau GmbH crawlt die Produktseiten eines Partnerherstellers, um sich einen schnellen Überblick über das aktuelle Sortiment zu verschaffen.
Häufige Fragen
Wie viele Seiten werden pro Durchlauf erfasst?
Bis zu 25 zusammenhängende Seiten ausgehend von der angegebenen Startadresse.
Werden auch externe Seiten außerhalb der Domain erfasst?
Nein, der Durchlauf folgt internen Links innerhalb derselben Website, nicht externen Verweisen zu anderen Domains.
Was, wenn die Website mehr als 25 Seiten hat?
Dann sind mehrere Durchläufe mit jeweils eigener Startadresse nötig, um weitere Bereiche zu erfassen.
Was kostet ein vollständiger Durchlauf über 25 Seiten?
$0.040 Grundgebühr pro Anfrage plus $0.001 je erfasster Seite, insgesamt rund $0.065 für 25 Seiten.
Darf ich damit jede beliebige fremde Website crawlen?
Für die eigene Website ist das unproblematisch; bei fremden Seiten sollten die Nutzungsbedingungen der jeweiligen Website beachtet werden, gerade bei größeren Datenmengen.
Wie lange dauert ein Durchlauf über 25 Seiten?
Jede Seite unterliegt einem Zeitlimit von 30 Sekunden; in der Praxis läuft ein vollständiger Durchlauf über mehrere Seiten deutlich schneller ab als das Maximum je Einzelseite.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/web/crawl \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/web/crawl", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/crawl",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/crawl", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/crawl", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"input": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.crawl",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
413 | input_too_large | Die Eingabe überschreitet das Größenlimit dieser Aufgabe – die genaue Grenze steht auf der Seite. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |