Verwenden von Headern mit der get-Methode der Python-Anforderungsbibliothek

Antworten:

279

Laut API können die Header alle mit request.get übergeben werden:

r=requests.get("http://www.example.com/", headers={"content-type":"text"})
cwallenpoole
quelle
14
Sie können den http-Anforderungsheader überprüfen, der gesendet wird, indem Folgendes ausgeführt wird: print (r.request.headers)
nono
2
@Breedly Richtiger Ort, richtige Zeit. Geschichte meines Lebens: bemerkenswert viel Glück kombiniert mit einer Menge harter Arbeit.
Cwallenpoole
36

Scheint ziemlich einfach zu sein, laut den Dokumenten auf der Seite, die Sie verlinkt haben (Hervorhebung von mir).

request.get (url, params = Keine, Header = Keine, Cookies = Keine, auth = Keine, Timeout = Keine)

Sendet eine GET-Anfrage. Gibt das ResponseObjekt zurück.

Parameter:

  • url - URL für das neue RequestObjekt.
  • params - (optional) Wörterbuch der GET-Parameter, die mit dem gesendet werden sollen Request.
  • Header - (optional) Wörterbuch der HTTP-Header, die mit dem gesendet werden sollen Request.
  • Cookies - (optional) CookieJar-Objekt, das mit dem gesendet werden soll Request.
  • auth - (optional) AuthObject zum Aktivieren der grundlegenden HTTP-Authentifizierung.
  • Timeout - (optional) Float, das das Timeout der Anforderung beschreibt.
John Flatness
quelle
3
Danke, aber ich weiß nicht viel über die Syntax von Python. Nur eine Art Lernen. Das nächste Mal tun Sie so, als wüsste ich nichts und habe die API wie der Typ oben gelesen.
Breedly
2
Es gibt Tippfehler im Dokumentationslink oder der Link ist tot. Hier ist der neue docs.python-requests.org/en/latest/api
Mutant
28

Diese Antwort hat mich gelehrt, dass Sie Header für eine gesamte Sitzung festlegen können:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

Bonus: Sitzungen behandeln auch Cookies.

Cees Timmerman
quelle