8

我正在对我们的数据库服务执行一个大循环的 http 请求。一切正常,但是每当我运行它时,在(看似随机的)成功查询数之后,我都会收到以下错误:urllib2.URLError: <urlopen error [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure>.

我正在使用 python,使用 urllib2 发送请求,使用 urllib 对我的 URL 中的一些内容进行编码,仅此而已。就像我说的,它看起来完全随机。我刚刚运行它,但在 6 个请求后它失败了。前一次,它在 49 次成功尝试后崩溃。以前有人遇到过这个问题吗?

谢谢

4

3 回答 3

0

它更关心网络,而不是你的代码。

我建议您可以在模块内使用带有重试的请求模块。

或者您可以在代码中添加一些重试。

例如,你可以这样写:

for i in range(reties):
    try:
       resp = xx.get(url)
       result = resp.get_result
    except (ConnectionError, SocketError or whatever else):
       pass
else:
    arise Exception('Retry Error')
于 2014-11-26T09:20:55.053 回答
-1

说真的,如果您不限于核心包,您应该尝试Python 请求。urllib2

于 2013-12-20T14:33:44.170 回答
-1

Stan 我认为 Scrapy 速度更快,可以处理所有类型的连接错误。

Eric 我建议你检查一下scrapy,你会惊讶于它的速度和功能

什洛米

于 2014-11-03T10:40:56.217 回答