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

Python结合Selenium下载Excel文件出现0KB大小异常问题求助

问题原因&修复方案

  • 核心原因就是你猜测的:程序在下载任务完成前就结束运行,Chrome进程被直接销毁,未完成的下载会残留为0KB的空文件。此外你启用的Chrome无头模式在部分版本中存在默认限制下载的bug,也可能触发该问题。

1. 修复无头模式下载配置

如果你使用的Chrome版本低于104,需要额外添加DevTools协议配置允许无头模式下载,添加在driver = webdriver.Chrome(...)之后即可:

# 给无头模式启用下载权限
driver.execute_cdp_cmd('Page.setDownloadBehavior', {
    'behavior': 'allow',
    'downloadPath': r"C:\Users\helia\Desktop\Test"
})

如果是Chrome 104及以上版本,建议把--headless参数替换为--headless=new,新版无头模式和正常模式功能完全一致,无需额外配置。

2. 添加下载完成等待逻辑

点击下载触发后,不要直接结束程序,加轮询检测下载状态的逻辑,示例如下:

import os
import time

# 你的下载目录
download_dir = r"C:\Users\helia\Desktop\Test"

# 点击下载、处理alert之后加这段
driver.find_element_by_class_name("btn.btn-app").click()
driver.switch_to.alert.accept()

# 等待下载完成:检测是否存在.crdownload临时文件
seconds = 0
wait_time = 120 # 最长等待2分钟,可根据文件大小调整
while seconds < wait_time:
    # 遍历下载目录所有文件
    temp_files = [f for f in os.listdir(download_dir) if f.endswith('.crdownload') or f.endswith('.tmp')]
    if not temp_files:
        # 没有临时文件说明下载完成
        break
    time.sleep(1)
    seconds += 1

# 最后再关闭driver
driver.quit()

3. 额外注意项

  • 你原有代码里的缩进存在错误,ua = UserAgent()开始到options配置的部分缩进多了,需要和上面的options = Options()对齐,否则会报语法错误。
  • 确认你设置的下载目录路径存在且有写入权限,权限不足也会导致下载失败生成0KB文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:27:03