How do I set headers using python's urllib? How do I set headers using python's urllib? python python

How do I set headers using python's urllib?


adding HTTP headers using urllib2:

from the docs:

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


For both Python 3 and Python 2, this works:

try:    from urllib.request import Request, urlopen  # Python 3except ImportError:    from urllib2 import Request, urlopen  # Python 2req = Request('http://api.company.com/items/details?country=US&language=en')req.add_header('apikey', 'xxx')content = urlopen(req).read()print(content)


Use urllib2 and create a Request object which you then hand to urlopen.http://docs.python.org/library/urllib2.html

I dont really use the "old" urllib anymore.

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

untested....