【问题标题】:Python broken urllib2 requestPython 破坏了 urllib2 请求
【发布时间】:2015-09-22 18:06:06
【问题描述】:

尝试运行我的程序时出现此错误:

Traceback (most recent call last):
  File "C:/Users/Adasli199/Desktop/Minetek-Testy-Stuff/tools/soldering-iron.py", line 400, in <module>
    MCVersionRegEx = cacheMCVersions()
  File "C:/Users/Adasli199/Desktop/Minetek-Testy-Stuff/tools/soldering-iron.py", line 141, in cacheMCVersions
    feeddata = opener.open(request).read()
  File "C:\Python27\lib\urllib2.py", line 404, in open
    response = self._open(req, data)
  File "C:\Python27\lib\urllib2.py", line 422, in _open
    '_open', req)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 1222, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "C:\Python27\lib\urllib2.py", line 1184, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:510: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error>

我正在尝试获取一些数据数据以帮助在代码的另一部分处理我的 RegEx 命令,这是它引用的引发错误的函数。

import httplib
import urllib2

def cacheMCVersions():
    request = urllib2.Request('https://mcversions.net/')
    request.add_header('User-Agent', 'SolderingIron/1.0 +http://tetrarch.co/') # identify ourselves so we don't get blocked
    opener = urllib2.build_opener()
    feeddata = opener.open(request).read()

在此之后还有一些正则表达式代码来解释数据,但我觉得这就是解决问题所需的全部内容。在运行时,https://mcversions.net/ 已启动,据我所知仍然存在,这使得该错误更加奇怪。

【问题讨论】:

  • 服务器仅支持 TLS 1/1.1/1.2 并且在连接 Python 3.4 时有效,所以我认为问题在于 Python 2.7 中支持的 SSL/TLS 版本
  • 您使用的是哪个 Python 版本? 2.7.9?
  • 不,我使用的是 Python 2.7.10
  • 我无法在 2.7.10 中重现您的错误(从 python.org 下载),但在 2.7.9 中我遇到了同样的错误。你确定你使用 2.7.10 吗? ssl.SSLContext 存在吗?

标签: python python-2.7 urllib2 httplib


【解决方案1】:

urllib 在 python 2.7.9https 请求上被破坏。

Install python 2.7.10 inside a virtual enviornment

它应该可以工作。您可能需要安装 libssl-devopenssl,具体取决于您的 linux 平台。

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-09-05
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多