Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python请求模块异常SSLError_Python 3.x_Ssl_Web Scraping_Python Requests_Pycharm - Fatal编程技术网

Python 3.x Python请求模块异常SSLError

Python 3.x Python请求模块异常SSLError,python-3.x,ssl,web-scraping,python-requests,pycharm,Python 3.x,Ssl,Web Scraping,Python Requests,Pycharm,当我尝试访问网站时,收到请求模块异常错误。我没有任何其他网站的问题,所以我相信这是一个网站的具体问题。下面是一些示例代码 import requests initialURL = 'http://www.acastipharma.com/' r = requests.get(initialURL) 当我运行此代码时,会收到一条错误消息,该消息以结尾 requests.exceptions.SSLError: HTTPSConnectionPool(host='www.acastipharma.

当我尝试访问网站时,收到请求模块异常错误。我没有任何其他网站的问题,所以我相信这是一个网站的具体问题。下面是一些示例代码

import requests
initialURL = 'http://www.acastipharma.com/'
r = requests.get(initialURL)
当我运行此代码时,会收到一条错误消息,该消息以结尾

requests.exceptions.SSLError: HTTPSConnectionPool(host='www.acastipharma.com', port=443): Max retries exceeded with url: /investors/ (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)'),))
互联网搜索表明问题可能出在acastipharma的SSL证书上。我尝试安装pyopenssl以确保我拥有检查SSL证书的模块的最新版本,但这并没有解决问题。我还尝试使用verify=False选项运行requests.get语句,但也没有成功

r = requests.get(initialURL, verify=False)
如果有人对如何解决这个问题有任何想法,我将非常感谢您的帮助。我还尝试使用旧的urllib.request包,但遇到了相同的错误

这是对我的原始问题的更新:我发布的错误消息来自尝试在acastipharma的网站子页面之一上运行requests命令,以下是我运行代码时得到的完整错误消息,完全如此问题所示:

    Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 376, in wrap_socket
    _context=self)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 747, in __init__
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 983, in do_handshake
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 628, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.acastipharma.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)'),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/sessions.py", line 640, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/sessions.py", line 640, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/sessions.py", line 218, in resolve_redirects
    **adapter_kwargs
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.acastipharma.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)'),))
回溯(最近一次呼叫最后一次):
urlopen中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urlib3/connectionpool.py”,第601行
分块=分块)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urllib3/connectionpool.py”,第346行,在请求中
自我验证连接(连接)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urllib3/connectionpool.py”,第850行,位于康涅狄格州
连接
connect中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urllib3/connection.py”,第326行
ssl(上下文=上下文)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urllib3/util/ssl_uuu.py”,第329行,在ssl_wrap_U套接字中
返回context.wrap\u套接字(sock,server\u hostname=server\u hostname)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py”,第376行,在wrap_套接字中
_上下文=自身)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py”,第747行,在__
self.do_握手
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py”,第983行,在do_握手中
赛尔夫:握手
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py”,第628行,在do_握手中
赛尔夫:握手
ssl.SSLError:[ssl:SSLV3\u警报\u握手\u失败]SSLV3警报握手失败(\u ssl.c:645)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/adapters.py”,第440行,在send中
超时=超时
urlopen中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urlib3/connectionpool.py”,第639行
_stacktrace=sys.exc_info()[2])
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/urllib3/util/retry.py”,第388行,增量
引发MaxRetryError(_池、url、错误或响应错误(原因))
urllib3.exceptions.MaxRetryError:HTTPSConnectionPool(host='www.acastipharma.com',port=443):url:/(由SSLError(SSLError(1,'[SSL:SSLV3警报握手失败]SSLV3警报握手失败(_SSL.c:645'))导致的最大重试次数)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
get中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/api.py”,第72行
返回请求('get',url,params=params,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/api.py”,请求中的第58行
return session.request(method=method,url=url,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/sessions.py”,请求中第508行
resp=自我发送(准备,**发送)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/sessions.py”,第640行,在send中
历史记录=[resp for resp in gen]如果允许,则重定向else[]
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/sessions.py”,第640行,在
历史记录=[resp for resp in gen]如果允许,则重定向else[]
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/sessions.py”,第218行,位于resolve_重定向中
**转接器
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/sessions.py”,第618行,在send中
r=适配器.send(请求,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site packages/requests/adapters.py”,第506行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:HTTPSConnectionPool(host='www.acastipharma.com',port=443):超过url:/(由SSLError(SSLError(1,'[SSL:SSLV3\u ALERT\u HANDSHAKE\u FAILURE]SSLV3 ALERT HANDSHAKE FAILURE(\u SSL.c:645'))引起的最大重试次数)
我正在使用Python 3.5.1。我在Mac上使用High Sierra版本10.13.2。我正在使用请求2.18.4。自从发布这个问题以来,我相信问题在于我的IDE PyCharm的环境。如果我使用Python3.5环境,我会遇到问题,如本问题所示,如果我将项目解释器切换到Python3.6,Anaconda环境请求将起作用,但不幸的是mysql无法导入。谢谢

OpenSSL版本为OpenSSL 0.9.8zh,2016年1月14日

此(非常旧且长期不受支持)版本的OpenSSL不支持此特定web服务器所需的较新密码。此服务器仅支持ECDHE密钥交换,OpenSSL 0.9.8尚不支持ECDHE密钥交换。这意味着
import warnings
from urllib3.exceptions import  InsecureRequestWarning
warnings.simplefilter('ignore',InsecureRequestWarning)