为何这个语句无法在腾讯云上运行?

    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

有腾讯云的朋友可以测试一下

阅读 2.9k
2 个回答

更新服务器的 OpenSSL

原答案


从报错情况看是SSL证书问题
建议先用requests将这个xlsx下载到本地

import requests
url_all = "https://sc.hkex.com.hk/TuniS/www.hkex.com.hk/chi/services/trading/securities/securitieslists/ListOfSecurities_c.xlsx"

resp = requests.get(url_all, headers={}, verify=False) #verify=False 屏蔽ssl证书
with open("此处填写文件路径","wb") as f:
    f.write(resp .content)
f.close()

后续操作和题主类似

今天申请了阿里云试用,上面的语句执行,没有任何问题,腾讯云有问题,搞不定。

yum install -y python3
pip3 install pandas xlrd
然后测试,阿里云顺利通过。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进