大约一年前,我编写了一个python脚本,用于通过网络抓取一个网站,它的工作原理很吸引人。现在使用相同的脚本和相同的站点,升级到Ubuntu 20.04后出现以下错误:
def e(xlst):
cnt = 0
for numbers in xlst:
for numbers2 in numbers:
if numbers2 == 0:
cnt += 1
return cnt
xlst = [[1,0,0],[1,1,1],[1,1,0]]
e(xlst)
经过一段时间的Google搜索,我了解到这是由于OpenSSL版本问题引起的。运行命令self._sslobj.do_handshake()
OSError: [Errno 0] Error
self._sslobj.do_handshake()
urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError(0, 'Error'))
requests.exceptions.ConnectionError: ('Connection aborted.', OSError(0, 'Error'))
可得到以下信息:
apt-cache policy openssl
在openssl:
Installed: 1.1.1f-1ubuntu2
Candidate: 1.1.1f-1ubuntu2
Version table:
*** 1.1.1f-1ubuntu2 500
500 http://in.archive.ubuntu.com/ubuntu focal/main amd64 Packages
100 /var/lib/dpkg/status
中设置verify=False
也无效。请帮我解决这个问题。
根据ssllabs.com的报告,目标站点被评为“ B”并支持TLS 1.0和TLS 1.1