You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Replit运行requests代码遇requests.exceptions.SSLError问题求助

解决Replit中Python requests访问MOEX接口的SSL报错问题

问题概述

  • 一周前可正常运行的Python requests代码,现在在Replit上执行出现SSL错误
  • 目标URL在浏览器中能正常访问,已尝试网络常规方案(含Stack Overflow相关解法)但无效

原代码

import requests

url = ‘https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics.csv’
print(url)

r = requests.get(url).text
print (r)

报错信息(翻译后)

Traceback (most recent call last):… requests.exceptions.SSLError:
HTTPSConnectionPool(host='iss.moex.com', port=443): Max retries exceeded with url:
/iss/statistics/engines/stock/markets/index/analytics.csv (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))

解决方案

1. 修正代码中的中文引号

原代码使用了中文全角引号,会导致URL解析异常,替换为英文半角引号即可:

import requests

url = 'https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics.csv'
print(url)

r = requests.get(url).text
print(r)

2. 强制指定兼容的TLS版本

部分服务器会调整TLS支持策略,Replit环境默认TLS版本可能不匹配。通过自定义适配器强制使用TLSv1.2:

import requests
import ssl
from requests.adapters import HTTPAdapter
from urllib3.poolmanager import PoolManager
from urllib3.util import ssl_

class TLSAdapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
        # 创建指定TLS版本的SSL上下文
        ctx = ssl_.create_urllib3_context(
            ssl_version=ssl.PROTOCOL_TLSv1_2,
            cert_reqs=ssl.CERT_REQUIRED,
            options=ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1
        )
        self.poolmanager = PoolManager(
            num_pools=connections,
            maxsize=maxsize,
            block=block,
            ssl_context=ctx
        )

url = 'https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics.csv'
session = requests.Session()
# 给HTTPS请求挂载自定义适配器
session.mount('https://', TLSAdapter())

try:
    response = session.get(url).text
    print(response)
except Exception as e:
    print(f"错误详情: {str(e)}")

3. 临时跳过SSL验证(仅用于测试)

若上述方法无效,可临时关闭SSL验证排查问题(生产环境禁止使用,存在安全风险):

import requests
import urllib3

# 关闭不安全请求警告
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

url = 'https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics.csv'
print(url)

response = requests.get(url, verify=False).text
print(response)

内容的提问来源于stack exchange,提问作者V V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:58:20