Wie kann ich mit urllib2 in einer HTTP-Anforderung einen benutzerdefinierten Header senden?

StackOverflow https://stackoverflow.com/questions/385262

  •  23-08-2019
  •  | 
  •  

Frage

Ich mag einen benutzerdefinierten schicken "Accept" Header in meiner Anfrage bei der Verwendung von urllib2.urlopen (..). Wie kann ich das tun?

War es hilfreich?

Lösung

Nicht ganz. ist ein Request Objekt erstellen nicht tatsächlich die Anfrage senden, und Request-Objekte haben keine Read() Methode. . (Auch:. read() ist klein geschrieben) Alles, was Sie tun müssen, ist die Request als erstes Argument übergeben urlopen() und das wird Ihnen Ihre Antwort

import urllib2
request = urllib2.Request("http://www.google.com", headers={"Accept" : "text/html"})
contents = urllib2.urlopen(request).read()

Andere Tipps

ich normalerweise verwenden:

import urllib2

request_headers = {
"Accept-Language": "en-US,en;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://thewebsite.com",
"Connection": "keep-alive" 
}

request = urllib2.Request("https://thewebsite.com", headers=request_headers)
response = urllib2.urlopen(request).read()
print(response)

Neben den anderen Lösungen bereits erwähnt, könnten Sie add_header Methode verwenden.

So das Beispiel vorgesehen py @pantsgolem werden:

import urllib2
request = urllib2.Request("http://www.google.com")

request.add_header('Accept','text/html')

##Show the header having the key 'Accept'
request.get_header('Accept')

response = urllib2.urlopen(request)
response.read()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top