2011-10-28 21 views
42

Jestem całkiem nowy w urllib Pythona. Muszę ustawić niestandardowy nagłówek dla żądania wysyłanego na serwer. W szczególności muszę ustawić nagłówki Content-type i Authorizations. Zajrzałem do dokumentacji Pythona, ale nie byłem w stanie go znaleźć.Jak ustawić nagłówki za pomocą urllib Pythona?

Odpowiedz

63

dodawanie nagłówków HTTP za pomocą urllib2:

od docs:

import urllib2 
req = urllib2.Request('http://www.example.com/') 
req.add_header('Referer', 'http://www.python.org/') 
resp = urllib2.urlopen(req) 
content = resp.read() 
9

Użyj adresu urllib2 i utwórz obiekt żądania, który następnie przekażesz do urlopuen. http://docs.python.org/library/urllib2.html

Nie używam już "starego" urllib.

req = urllib2.Request("http://google.com", None, {'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'}) 
response = urllib2.urlopen(req).read() 

niesprawdzone ....

41

Zarówno Python Python 3 i 2, to działa:

try: 
    from urllib.request import Request, urlopen # Python 3 
except ImportError: 
    from urllib2 import Request, urlopen # Python 2 

q = Request('http://api.company.com/items/details?country=US&language=en') 
q.add_header('apikey', 'xxx') 
a = urlopen(q).read() 

print(a) 
+0

możemy zrobić to samo z żądania q.add_header ('apikey', 'xxx') – user3378649

+0

Co masz na myśli, @ user3378649? –

+1

@ user3378649 może oznaczać, że użyjesz 'pytającego' pakietu python [niestandardowe nagłówki] (http://docs.python-requests.org/en/master/user/quickstart/#custom-headers) – WeizhongTu

1

Dla wielu nagłówków zrobić następująco:

import urllib2 
req = urllib2.Request('http://www.example.com/') 
req.add_header('param1', '212212') 
req.add_header('param2', '12345678') 
req.add_header('other_param1', 'sample') 
req.add_header('other_param2', 'sample1111') 
req.add_header('and_any_other_parame', 'testttt') 
resp = urllib2.urlopen(req) 
content = resp.read() 
Powiązane problemy