Status Codes
Crawlbase liefert bei jeder Response zwei Statussignale: den standardmäßigen HTTP-Status und einen cb_status-Header, der beschreibt, was Crawlbase getan hat. Hier erfahren Sie, was jede Kombination bedeutet.
Zwei Status, zwei Fragen
Die meisten HTTP-APIs geben Ihnen einen einzelnen Statuscode. Crawlbase gibt Ihnen zwei, weil Crawling zwei Schichten umfasst: die Infrastruktur von Crawlbase und die dahinterliegende Zielseite.
200 bedeutet, der Crawl war erfolgreich; 520 bedeutet, er ist fehlgeschlagen, und cb_status nennt den Grund; andere 4xx/5xx-Codes bedeuten, dass der Request vor jedem Crawl abgelehnt wurde.200 bedeutet eine verwendbare Seite; andere Codes beschreiben, was schiefgelaufen ist.Prüfen Sie immer zuerst den HTTP-Status. Wenn er 200 ist, prüfen Sie cb_status. Wenn dieser 200 ist, prüfen Sie original_status auf seitenseitige Fehler.
HTTP-Statuscodes
Was Crawlbase selbst an Ihren Client zurückgegeben hat.
| Code | Bedeutung | Aktion |
|---|---|---|
200 | Request verarbeitet. Prüfen Sie cb_status für das Ergebnis. | Weiter zu cb_status |
400 | Ungültiger Request: url fehlt, ist nicht URL-kodiert oder zu lang, oder ein Parameter hat einen ungültigen Wert. | Request korrigieren; ein unveränderter Retry hilft nicht |
401 | Token fehlt oder ist ungültig. | Token überprüfen; sicherstellen, dass es nicht zurückgesetzt wurde |
402 | Dieser Workspace hat sein monatliches Ausgabenlimit erreicht. | Limit in der Console erhöhen oder auf den nächsten Zeitraum warten |
403 | Der Account ist gesperrt (zum Beispiel sind die kostenlosen Credits aufgebraucht und keine Abrechnung ist eingerichtet) oder hat sein Ausgabenlimit auf Account-Ebene erreicht. | Seite Abrechnung in der Console prüfen |
429 | Rate Limit für diesen Token und diese Zieldomain erreicht. | Zurückfahren und erneut versuchen; siehe Rate Limits |
500 | Interner Crawlbase-Fehler. Selten und vorübergehend. | Mit Backoff erneut versuchen; Statusseite prüfen |
503 | Dienst vorübergehend nicht verfügbar. | Mit Backoff erneut versuchen |
504 | Der Request hat ein Timeout erreicht, bevor der Crawl abgeschlossen war (cb_status ist ebenfalls 504). Wird nicht berechnet. | Mit Backoff erneut versuchen |
520 | Der Crawl ist fehlgeschlagen. cb_status nennt den Grund. Wird nicht berechnet. | cb_status auslesen und den Tabellen unten folgen |
cb_status-Codes
Was während des Crawls passiert ist. Wird bei jeder Crawl-Response, ob erfolgreich oder nicht, als cb_status-Response-Header zurückgegeben (und mit format=json im Body). Früher pc_status genannt, das weiterhin als Alias gesendet wird.
Erfolg
| Code | Bedeutung |
|---|---|
200 | Seite erfolgreich gecrawlt. Der Body enthält das HTML oder JSON der Zielseite. original_status kann auch 404, 410 oder ein Redirect sein: Das sind gültige Antworten, sie zählen als erfolgreiche Crawls und werden berechnet. |
207 | Die Seite hat mit 200 und leerem Body geantwortet. Zählt als Erfolg und wird berechnet; wenn Sie Inhalt erwartet haben, wiederholen Sie den Request mit dem JavaScript Token. |
Zielseite hat mit einem Fehler geantwortet
Crawlbase hat die Seite erreicht, aber die Seite hat den Request abgelehnt. original_status enthält den eigenen Status der Seite, und keiner dieser Fälle wird berechnet. Ein 404 oder 410 ist hier kein Fehler: Er kommt als cb_status 200 zurück.
| Code | Bedeutung |
|---|---|
704 | Die Seite hat mit einem anderen Nicht-Erfolgsstatus geantwortet. Lesen Sie original_status aus und behandeln Sie ihn als Antwort der Seite, oder tragen Sie ihn in custom_success_codes ein, um den Body trotzdem zu erhalten. |
705 | Die Seite hat mit 403 geantwortet, meist ein Block. Senken Sie Ihre Request-Rate und untersuchen Sie die Ursache, bevor Sie es erneut versuchen. |
706 | Die Seite hat mit 429 geantwortet und drosselt Ihre Requests per Rate Limit. Fahren Sie zurück und senken Sie Ihre Request-Rate. |
Blockiert oder fehlgeschlagen
| Code | Bedeutung | Was Sie versuchen können |
|---|---|---|
503 | Crawlbase hat eine Block- oder CAPTCHA-Seite erkannt. | Vom Normal Token zum JavaScript Token wechseln; wenn bereits auf JavaScript, zurückfahren und erneut versuchen |
595 | Das css_click_selector-Element wurde auf der Seite nicht gefunden. | Selektor korrigieren oder einen Fallback wie #start-button,body ergänzen |
599 | Interner Crawlbase-Fehler. | Mit Backoff erneut versuchen; bei anhaltendem Fehler die rid an den Support senden |
5xx-7xx | Jeder andere 5xx-, 6xx- oder 7xx-Code ist ein interner oder seitenspezifischer Fehler. Keiner davon wird berechnet. | Mit begrenzter Anzahl an Versuchen wiederholen; bei anhaltendem Fehler die rid an den Support senden |
Die Response lesen
curl -i 'https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com'
# HTTP/1.1 200 OK
# cb_status: 200
# original_status: 200
# url: https://example.com/
# content-type: text/htmlfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get('https://example.com')
# Layer 1: did the crawl succeed? 520 means it failed.
if res['status_code'] != 200:
raise RuntimeError(f"Crawl failed: {res['status_code']}, cb_status {res['cb_status']}")
# Layer 2: did Crawlbase get content? 207 means an empty page.
if res['cb_status'] == 207:
raise RuntimeError("Empty page; retry with the JavaScript token")
# Layer 3: did the target site return content?
if res['original_status'] != 200:
print(f"Site returned {res['original_status']}")
print(res['body'])