如何使用python的urllib设置标题?

我对Python的urllib很新。 我需要做的是为请求发送到服务器设置自定义标题。 具体来说,我需要设置内容types和授权标题。 我已经看了python文档,但我一直无法find它。

使用urllib2添加HTTP头:

从文档:

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

对于Python 3和Python 2,这都适用:

 try: from urllib.request import Request, urlopen # Python 3 except: 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) 

使用urllib2,然后创build一个Request对象,然后将其交给urlopen。 http://docs.python.org/library/urllib2.html

我真的不再使用“老”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() 

未经testing….

对于多个标头,请按照

 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()