首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python请求库获取标头

使用Python请求库获取标头
EN

Stack Overflow用户
提问于 2014-02-18 10:51:15
回答 1查看 538关注 0票数 0

我使用Python请求库获取html页面的头,并使用它获取编码。但是,一些请求的链接无法获得标题。对于这种情况,我想使用编码"utf-8“。我如何处理这类个案?如何处理requests.head返回的错误。

这是我的代码:

代码语言:javascript
复制
r = requests.head(link) #how to handle error in case this fails?
charset = r.encoding
if (not charset):
    charset = "utf-8"

当请求无法获得标头时,我所得到的错误:

代码语言:javascript
复制
 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/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 10:59:46

你应该把你的代码放在一个试-除了块,捕捉ConnectionErrors。如下所示:

代码语言:javascript
复制
try:
    r = requests.head(link) //how to handle error in case this fails?
    charset = r.encoding
    if (not charset):
      charset = "utf-8"
except requests.exceptions.ConnectionError:
    print 'Unable to access ' + link
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21851496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档