PeterDing / BaiduPCS-Py

BaiduPCS API & App 百度网盘客户端 和 API
MIT License
667 stars 108 forks source link

urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number #101

Open jalatls opened 1 year ago

jalatls commented 1 year ago

您好!最近发现每次递归下载某个文件夹内的文件BaiduPCS-Py download -R -d aget_py /ZYF/,下载几个后会提示错误:

错误提示为 (v0.7.1) System ERROR: <urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131)>

请查看~/.baidupcs-py/running.log的内容:

2022-10-05 12:04:49,463 | DEBUG | download: download: sifters: [], recursive: True, from_index: 0, downloader: Downloader.aget_py, downloadparams: DownloadParams(chunk_size='52428800', concurrency=5, quiet=False), out_cmd: False, has encrypt_password: False 2022-10-05 12:04:49,463 | DEBUG | download: download: remotepaths should be uniq 1 == 1 2022-10-05 12:06:20,760 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:08:25,249 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:13:59,939 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:16:56,021 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:18:33,029 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:19:58,436 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:22:38,378 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:25:23,799 | DEBUG | download: download: cmd returncode: 0 2022-10-05 12:25:25,414 | DEBUG | app: app: System Error: Traceback (most recent call last): File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 1354, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 1256, in request self._send_request(method, url, body, headers, encode_chunked) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 1302, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 1251, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 1011, in _send_output self.send(msg) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 951, in send self.connect() File "/home/jiaa/.conda/envs/baidu/lib/python3.8/http/client.py", line 1425, in connect self.sock = self._context.wrap_socket(self.sock, File "/home/jiaa/.conda/envs/baidu/lib/python3.8/ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "/home/jiaa/.conda/envs/baidu/lib/python3.8/ssl.py", line 1040, in _create self.do_handshake() File "/home/jiaa/.conda/envs/baidu/lib/python3.8/ssl.py", line 1309, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/app/app.py", line 118, in wrap return func(*args, kwargs) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/app/app.py", line 176, in wrap return func(*args, *kwargs) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/app/app.py", line 1032, in download _download( File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/commands/download.py", line 414, in download download_dir( File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/commands/download.py", line 344, in download_dir download_dir( File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/commands/download.py", line 332, in download_dir download_file( File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/commands/download.py", line 299, in download_file dlink = api.download_link(remotepath) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/baidupcs/api.py", line 543, in download_link return self._baidupcs.download_link(remotepath, pcs=pcs) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/common/cache.py", line 46, in wrap val = func(args, kwargs) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/site-packages/baidupcs_py/baidupcs/pcs.py", line 989, in download_link resp = urllib.request.urlopen(req) # type: ignore File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 222, in urlopen return opener.open(url, data, timeout) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 525, in open response = self._open(req, data) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 542, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 502, in _call_chain result = func(*args) File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 1397, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/home/jiaa/.conda/envs/baidu/lib/python3.8/urllib/request.py", line 1357, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131)>

2022-10-05 12:25:26,396 | DEBUG | app: app: _teardown: start 2022-10-05 12:25:26,396 | DEBUG | app: app: _teardown: end

请问是账号的问题还是bug呢,账号是开了VIP的,用百度客户端没有问题。 期待您的回复! 感谢。

PeterDing commented 1 year ago

请说明一下你用的操作系统。并多运行几次下面的命令,看看是否会报错。

python3 -c 'import socket, ssl; context = ssl.SSLContext(); context.load_default_certs(); hostname = "pcs.baidu.com"; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); ssl_sock = context.wrap_socket(s, server_hostname=hostname); ssl_sock.connect((hostname, 443))'
jalatls commented 1 year ago

您好!感谢您的回复。

我的系统是linux,版本是

LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 7.9 (Maipo) Release: 7.9 Codename: Maipo

尝试运行很多次,aget_py基本都是下载四五个后断掉,其他同时下载的单个文件成功之前会断掉。