I am using Python requests library to get the header of html pages and use this to get the encoding. But some of the links the requests fails to get header. For such cases I would like to use the encoding "utf-8". How do I handle such cases? How do I handle error returned by requests.head.
Here is my code:
r = requests.head(link) #how to handle error in case this fails?
charset = r.encoding
if (not charset):
charset = "utf-8"
Error I am getting when requests fails to get the header :
File "parsexml.py", line 78, in parsefile
r = requests.head(link)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 74, in head
return request('head', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 40, in request
return s.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 229, in request
r.send(prefetch=prefetch)
File "/usr/lib/python2.7/dist-packages/requests/models.py", line 605, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='www.standardzilla.com', port=80): Max retries exceeded with url: /2008/08/01/diaries-of-a-freelancer-day-thirty-seven/
www.standardzilla.comdoesn't exist.requestsspecific, let alone anything to do with testing for character sets. :-)