How do you send a HEAD HTTP request in Python 2? How do you send a HEAD HTTP request in Python 2? python python

How do you send a HEAD HTTP request in Python 2?


urllib2 can be used to perform a HEAD request. This is a little nicer than using httplib since urllib2 parses the URL for you instead of requiring you to split the URL into host name and path.

>>> import urllib2>>> class HeadRequest(urllib2.Request):...     def get_method(self):...         return "HEAD"... >>> response = urllib2.urlopen(HeadRequest("http://google.com/index.html"))

Headers are available via response.info() as before. Interestingly, you can find the URL that you were redirected to:

>>> print response.geturl()http://www.google.com.au/index.html


edit: This answer works, but nowadays you should just use the requests library as mentioned by other answers below.


Use httplib.

>>> import httplib>>> conn = httplib.HTTPConnection("www.google.com")>>> conn.request("HEAD", "/index.html")>>> res = conn.getresponse()>>> print res.status, res.reason200 OK>>> print res.getheaders()[('content-length', '0'), ('expires', '-1'), ('server', 'gws'), ('cache-control', 'private, max-age=0'), ('date', 'Sat, 20 Sep 2008 06:43:36 GMT'), ('content-type', 'text/html; charset=ISO-8859-1')]

There's also a getheader(name) to get a specific header.


Obligatory Requests way:

import requestsresp = requests.head("http://www.google.com")print resp.status_code, resp.text, resp.headers