Seeing as there is no really easy way to do a HTTP HEAD request from python, I wrote up the following small method:
In advance I’d like to apologize for the method that assemblies the request path.
Update: Added handling of redirects.
def http_head(url):
import httplib
import urlparse
redirects = 0
while redirects < 10:
scheme, netloc, path, query, fragment = urlparse.urlsplit(url)
if scheme == 'https':
conn = httplib.HTTPSConnection(netloc)
else:
conn = httplib.HTTPConnection(netloc)
conn.request("HEAD", "%s%s%s%s%s" % (path, query and "?" or "", query,
fragment and "#" or "", fragment))
res = conn.getresponse()
if res.status in (301, 302) and res.getheader('location'):
url = res.getheader('location')
redirects += 1
else:
break
return res.status, res.reason