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

Python如何从aspx链接下载并读取正确格式的CSV文件

解决方案

你当前的代码无法得到正确CSV的核心原因是:你请求的VisualizaConsultaFrame.aspx是动态数据展示页面,不是CSV文件的直接下载链接,直接GET请求返回的是HTML网页源码,存储为CSV/XLS格式自然会出现内容不符合预期的问题。

具体操作步骤

  • 第一步:获取正确的下载请求参数
    打开浏览器访问目标页面,按F12打开开发者工具,切换到「网络」标签,勾选「保留日志」,然后手动点击页面上的CSV下载按钮。在网络请求列表中找到触发下载的对应请求,记录以下信息:
    • 请求方法(大概率为POST,此类查询类页面通常需要提交查询参数)
    • 请求头中的User-Agent、Cookie、Content-Type等必填字段
    • 若为POST请求,记录「载荷」中的表单参数内容
  • 第二步:使用requests模拟下载请求
    按照你抓取到的参数调整请求代码,示例结构如下:
import requests
import pandas as pd

# 替换为你抓到的实际下载请求URL,不一定是原页面URL
url = "https://extra-ibre.fgv.br/IBRE/sitefgvdados/xxx_download_path"

# 替换为你抓到的实际请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Content-Type": "application/x-www-form-urlencoded"
}

# 替换为你抓到的实际POST表单参数,如果是GET请求就删掉data参数,参数拼到URL后面
data = {
    "param1": "value1",
    "param2": "value2"
}

# 发送请求
response = requests.post(url, headers=headers, data=data)
# 确认请求成功
response.raise_for_status()

# 方案1:直接存为CSV文件
file_name = 'xgdvConsulta.csv'
with open(file_name, 'wb') as f:
    f.write(response.content)

# 方案2:直接读取为表格格式,无需存本地
# 注意根据实际编码调整encoding,葡萄牙语站点常用latin-1或utf-8-sig
df = pd.read_csv(pd.io.common.StringIO(response.text), encoding="utf-8-sig")
# 打印确认表格内容
print(df.head())
# 如果需要后续处理,直接操作df即可
  • 第三步:编码适配
    如果读取的CSV出现乱码,尝试替换encoding参数为latin-1、cp1252等南美洲站点常用编码即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:57:03