- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何区分超时错误和Python中的其他URLError
?
编辑
当我捕获到 URLError
时,它可能是Temporary failure in name resolution
或 timeout
,或其他一些错误?我如何区分彼此?
最佳答案
我使用类似下面选项 2 的代码...但要获得全面的答案,请查看 Michael Foord's urllib2 page
如果您使用下面的选项 1 或选项 2,您可以通过查看 e.code
或 e.reason< 在 except 子句中添加尽可能多的智能和分支
选项 1:
from urllib2 import Request, urlopen, URLError, HTTPError
req = Request(someurl)
try:
response = urlopen(req)
except HTTPError, e:
print 'The server couldn\'t fulfill the request.'
print 'Error code: ', e.code
except URLError, e:
print 'We failed to reach a server.'
print 'Reason: ', e.reason
else:
# everything is fine
选项 2:
from urllib import urlencode
from urllib2 import Request
# insert other code here...
error = False
error_code = ""
try:
if method.upper()=="GET":
response = urlopen(req)
elif method.upper()=="POST":
response = urlopen(req,data)
except IOError, e:
if hasattr(e, 'reason'):
#print 'We failed to reach a server.'
#print 'Reason: ', e.reason
error = True
error_code = e.reason
elif hasattr(e, 'code'):
#print 'The server couldn\'t fulfill the request.'
#print 'Error code: ', e.code
error = True
error_code = e.code
else:
# info is dictionary of server parameters, such as 'content-type', etc...
info = response.info().dict
page = response.read()
关于python - Python中如何区分超时错误和其他 `URLError`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5467260/
如何区分超时错误和Python中的其他URLError? 编辑 当我捕获到 URLError 时,它可能是Temporary failure in name resolution 或 timeout,
我之前在 Windows XP 机器上安装了 Python 2.6.2 并运行以下代码: import urllib2 import urllib page = urllib2.Request('ht
这是一段网络挖掘脚本。 def printer(q,missing): while 1: tmpurl=q.get() try: ima
我有以下代码: from urllib.request import urlopen from urllib.error import HTTPError, URLError from bs4 imp
在我创建的脚本中,我将大量数据发布到 REST API。 该脚本非常模块化,在顶层某处我捕获了 URLError。我需要知道响应正文中的内容,因为其中会有一条错误消息。 是否有我可以使用的 URLEr
我正在对我们的数据库服务进行大量的 http 请求循环。一切正常,但每当我运行它时,在(看似随机的)成功查询之后,我收到以下错误:urllib2.URLError: . 我正在使用 python,u
一旦引发 URLError 异常,我想获取 HTTP 状态代码: 我试过了,但没有帮助: except URLError, e: logger.warning( 'It seems like
操作系统:Windows 7;使用Python GUI Shell的Python 2.7.3 我正在尝试通过Python阅读网站,并且有几位作者使用了urllib和urllib2库。要将网站存储在变量
我一直在开发一个网络抓取程序。当我在 Pycharm IDE 中运行它时,它工作正常。但是,当使用 cx_Freeze 编译时,出现错误: urllib.error.URLError: 这是我的代码
我正在使用 python 版本的 selenium 进行 django 的一些测试,但是当尝试启动新 session 时,firefox webdriver 会抛出 URLError 异常。我所做的是
当我将 Error 设置为 URLError 时,然后尝试访问其“代码”属性,应用程序崩溃了。我明白了 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcod
try: response = urllib2.urlopen(req) except Exception, e: logger.exception(e) 是否有任何令人信服的论点反对
这特别适用于 urllib2,但更普遍的是自定义异常处理。如何通过引发的异常将附加信息传递给另一个模块中的调用函数?我假设我会使用自定义异常类重新引发,但我不确定技术细节。 我不会用我尝试过但失败过的
操作系统:Windows 7;使用 Python GUI Shell 的 Python 2.7.3 我正在尝试通过 Python 读取一个网站,一些作者使用了 urllib 和 urllib2 库。为
我是 python 新手,正在使用 python 3.5.0。我试图实现一个简单的代码如下: import urllib.request page = urllib.request.urlopen("
所以我有一个 scrapy 程序,我正试图启动它,但我无法让我的代码执行它,它总是出现以下错误。 我仍然可以使用 scrapy shell 命令访问该站点,所以我知道 Url 和其他内容都可以正常工作
我试图使用 pos_tag NLTK 3 中的函数(在 Windows 上),但出现此错误: >>> import nltk >>> tokens = nltk.word_tokenize("This
我是 Python 新手,尝试从下面的 URL 下载 csv 文件,但收到如下错误 https://mldata.org/repository/data/download/csv/stockvalue
我正在尝试使用 appcfg.py 将一些记录上传到本地数据存储 实际上只插入了少量记录,我得到以下输出(有大量错误): $ appcfg.py upload_data --config
我在研究 urllib2 时得到了这段代码。 import urllib2 req = urllib2.Request('http://www.baibai.com') try: urllib2.ur
我是一名优秀的程序员,十分优秀!