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

无法通过编程下载xls文件,疑遭服务器请求频次限制

编程下载Excel文件时出现403/请求失败,偶尔成功的问题
  • 手动在浏览器粘贴目标URL可成功下载xls文件,但使用requests、urllib、urllib3等库编程下载时,要么返回403错误,要么返回包含*'request unsuccessful'*文本的HTML页面。
  • 代码未做任何改动的情况下,该操作偶尔能成功下载Excel文件,但之后又会失败,现象十分不稳定。
  • 更新:等待一段时间后再次运行代码即可成功,推测服务器可能存在单位时间内请求次数限制,希望他人验证该情况是否同样发生。

以下是测试代码:

import pandas as pd
import requests

url="https://www.aaii.com/files/surveys/sentiment.xls"

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    'Accept': '.xls,.xlsx,application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'en-US,en;q=0.9',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'DNT': '1'
    }

resp = requests.get(url=url, headers=headers)
data = resp.content
print(data)
with open('test.xls', 'wb') as output:
    output.write(data)

df=pd.read_excel(data)
# df=pd.read_excel(url, header=headers)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:18:21