I need to implement a function to get headers (without GET or POST) using urllib2. Here is my function:
def getheadersonly(url, redirections = True): if not redirections: class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler): def http_error_302(self, req, fp, code, msg, headers): return urllib2.HTTPRedirectHandler.http_error_302(self, req, fp, code, msg, headers) http_error_301 = http_error_303 = http_error_307 = http_error_302 cookieprocessor = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(MyHTTPRedirectHandler, cookieprocessor) urllib2.install_opener(opener) class HeadRequest(urllib2.Request): def get_method(self): return "HEAD" info = {} info['headers'] = dict(urllib2.urlopen(HeadRequest(url)).info()) info['finalurl'] = urllib2.urlopen(HeadRequest(url)).geturl() return info
Uses the code from this and the answer. However, this one performs redirection even if the flag is False . I tried the code with:
print getheadersonly("http://ms.com", redirections = False)['finalurl'] print getheadersonly("http://ms.com")['finalurl']
This gives morganstanley.com in both cases. What is wrong here?
python urllib2
jerrymouse Mar 27 2018-12-12T00: 00Z
source share