Ich möchte einen benutzerdefinierten "Accept"-Header in meiner Anfrage senden, wenn ich urllib2.urlopen(..) verwende. Wie mache ich das?
Antworten
Zu viele Anzeigen?Nicht ganz. Das Erstellen eines Request
-Objekts sendet den Request tatsächlich nicht und Request-Objekte haben keine Read()
-Methode. (Außerdem: read()
wird klein geschrieben.) Alles was Sie tun müssen, ist den Request
als ersten Argument an urlopen()
zu übergeben und das wird Ihnen Ihre Antwort geben.
import urllib2
request = urllib2.Request("http://www.google.com", headers={"Accept" : "text/html"})
contents = urllib2.urlopen(request).read()
Pedro Lobito
Punkte
84666
Normalerweise verwende ich:
import urllib2
request_headers = {
"Accept-Language": "de-DE,de;q=0.5",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Referer": "http://dieWebseite.de",
"Connection": "keep-alive"
}
request = urllib2.Request("https://dieWebseite.de", headers=request_headers)
response = urllib2.urlopen(request).read()
print(response)
user1314742
Punkte
2665
Abgesehen von den bereits genannten Lösungen könntest du die Methode add_header
verwenden.
Also wird das Beispiel von @pantsgolem sein:
import urllib2
request = urllib2.Request("http://www.google.com")
request.add_header('Accept','text/html')
##Zeige den Header mit dem Schlüssel 'Accept'
request.get_header('Accept')
response = urllib2.urlopen(request)
response.read()