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

下载NASDAQ_ITCH50.gz文件遭遇WinError 10060错误求助

解决WinError 10060:下载NASDAQ ITCH FTP文件超时问题

先修正URL错误

你的代码里的FTP URL存在两个明显问题:

  • 路径包含空格,不符合FTP URL规范
  • 目标是具体文件,但URL指向了目录而非文件

修正后的代码:

from urllib.request import urlretrieve

# 直接指向目标文件,去掉多余的目录后缀
urlretrieve('ftp://emi.nasdaq.com/ITCH/10302019.NASDAQ_ITCH50.gz', '10302019.NASDAQ_ITCH50.gz')

超时原因排查及解决方案

1. 代理配置缺失

如果你的网络需要通过代理访问外部服务,urllib默认不会自动加载系统代理,需手动配置:

from urllib.request import urlretrieve, ProxyHandler, build_opener, install_opener

# 替换为你的代理地址和端口,支持带认证的格式:'ftp://用户名:密码@代理地址:端口'
proxy_handler = ProxyHandler({
    'ftp': 'http://your-proxy:port'
})
opener = build_opener(proxy_handler)
install_opener(opener)

# 执行下载
urlretrieve('ftp://emi.nasdaq.com/ITCH/10302019.NASDAQ_ITCH50.gz', '10302019.NASDAQ_ITCH50.gz')

2. 未启用FTP被动模式

多数公共FTP服务器要求使用被动模式(PASV),改用ftplib手动控制更可靠:

import ftplib

# 连接服务器并登录(匿名登录)
ftp = ftplib.FTP('emi.nasdaq.com')
ftp.login()
ftp.cwd('ITCH')

# 强制开启被动模式
ftp.set_pasv(True)

# 下载文件
with open('10302019.NASDAQ_ITCH50.gz', 'wb') as f:
    ftp.retrbinary('RETR 10302019.NASDAQ_ITCH50.gz', f.write)

ftp.quit()

3. 网络与安全限制

  • 检查防火墙、杀毒软件是否拦截了FTP 21端口的出站连接
  • 用FileZilla等FTP客户端手动连接ftp://emi.nasdaq.com/ITCH/,确认服务器是否可访问
  • 公司网络环境下,需联系IT部门确认是否开放了FTP出站权限

4. 延长超时时间

若因网络延迟导致超时,可设置更长的超时阈值:

# urllib方式设置超时(单位:秒)
urlretrieve('ftp://emi.nasdaq.com/ITCH/10302019.NASDAQ_ITCH50.gz', '10302019.NASDAQ_ITCH50.gz', timeout=60)

# ftplib方式设置超时
ftp = ftplib.FTP('emi.nasdaq.com', timeout=60)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:05:42