Ich verwende die Anforderungsbibliothek und greife auf eine Website zu, um Daten mit dem folgenden Code zu sammeln:
r = requests.get(url)
Ich möchte Fehlertests hinzufügen, wenn eine falsche URL eingegeben und ein 404-Fehler zurückgegeben wird. Wenn ich absichtlich eine ungültige URL eingebe, wenn ich dies tue:
print r
Ich verstehe das:
<Response [404]>
BEARBEITEN:
Ich möchte wissen, wie man das testet. Der Objekttyp ist immer noch der gleiche. Wenn ich r.content
oder tue r.text
, bekomme ich einfach den HTML-Code einer benutzerdefinierten 404-Seite.
python
python-requests
user1427661
quelle
quelle
Antworten:
Schauen Sie sich das
r.status_code
Attribut an :Demo:
Wenn Sie
requests
eine Ausnahme für Fehlercodes (4xx oder 5xx) auslösen möchten , rufen Sie aufr.raise_for_status()
:Sie können das Antwortobjekt auch in einem booleschen Kontext testen. Wenn der Statuscode kein Fehlercode ist (4xx oder 5xx), wird er als "wahr" betrachtet:
Wenn Sie expliziter sein möchten, verwenden Sie
if r.ok:
.quelle
.get()
anstatt anschließend eine Funktion aufzurufen.