import pandas as pd
url_all = "https://sc.hkex.com.hk/TuniS/www.hkex.com.hk/chi/services/trading/securities/securitieslists/ListOfSecurities_c.xlsx"
stocks = pd.read_excel(url_all,skiprows=2,dtype=str)
很简单的三句话,从一个网页,下载股票数据,并读取成一个dataframe.
上面的那三句话在我本机上执行,没有任何问题。
我在腾讯云上,每次执行都有下面的报错:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/pandas/util/_decorators.py", line 188, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/pandas/util/_decorators.py", line 188, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/pandas/io/excel.py", line 350, in read_excel
io = ExcelFile(io, engine=engine)
File "/usr/local/lib/python3.7/site-packages/pandas/io/excel.py", line 653, in __init__
self._reader = self._engines[engine](self._io)
File "/usr/local/lib/python3.7/site-packages/pandas/io/excel.py", line 421, in __init__
data = filepath_or_buffer.read()
File "/usr/local/lib/python3.7/http/client.py", line 460, in read
s = self._safe_read(self.length)
File "/usr/local/lib/python3.7/http/client.py", line 610, in _safe_read
chunk = self.fp.read(min(amt, MAXAMOUNT))
File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
return self._sock.recv_into(b)
File "/usr/local/lib/python3.7/ssl.py", line 1049, in recv_into
return self.read(nbytes, buffer)
File "/usr/local/lib/python3.7/ssl.py", line 908, in read
return self._sslobj.read(len, buffer)
ConnectionResetError: [Errno 104] Connection reset by peer
有腾讯云的朋友可以测试一下
更新服务器的 OpenSSL
原答案
从报错情况看是SSL证书问题
建议先用requests将这个xlsx下载到本地
后续操作和题主类似