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

如何将Python定期下载文件的脚本迁移到无Chrome的虚拟服务器运行

无GUI服务器端文件下载实现方案

原有逻辑依赖本地Chrome浏览器处理HTTP请求和文件写入,无GUI的虚拟服务器不需要安装浏览器,直接使用Python的HTTP请求库模拟浏览器请求即可实现相同的下载效果,具体实现步骤如下:

1. 安装依赖库

使用requests库替代浏览器完成请求发送和文件接收,执行以下命令安装:
pip install requests
如果服务器使用Python3,可替换为pip3 install requests

2. 核心实现代码

import requests
import os

# 下载目标链接
url = 'https://www.djppr.kemenkeu.go.id/page/loadViewer?idViewer=9369&action=download'
# 自定义服务器端文件保存路径
save_dir = './djppr_download'
# 自动创建保存目录,目录已存在时不会报错
os.makedirs(save_dir, exist_ok=True)
# 可根据实际下载的文件类型修改后缀名,该链接默认下载为PDF文件
save_path = os.path.join(save_dir, 'djppr_file.pdf')

# 模拟浏览器请求头,避免被网站反爬策略拦截
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'
}

try:
    # 发送GET请求,stream=True适配大文件下载,避免内存溢出
    response = requests.get(url, headers=headers, stream=True, timeout=30)
    # 校验请求是否成功,状态码非200会抛出异常
    response.raise_for_status()
    
    # 流式写入本地文件
    with open(save_path, 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            if chunk:
                f.write(chunk)
    print(f"下载成功,文件保存路径:{save_path}")
except Exception as e:
    print(f"下载失败,错误信息:{str(e)}")

3. 配套配置与异常处理

  • 定期执行可使用Linux服务器的crontab定时任务,例如配置每天凌晨1点执行脚本,添加规则:0 1 * * * /usr/bin/python3 /your/script/path/download.py >> /your/log/path/download.log 2>&1
  • 若遇到SSL证书校验错误,可在requests.get参数中添加verify=False跳过校验,仅建议对信任的目标网站使用该配置
  • 若后续网站需要登录权限才能下载,可从浏览器中获取登录后的Cookie值,添加到headers参数中即可
  • 若下载后文件无法打开,可先在本地浏览器下载一次原文件确认实际格式,修改代码中保存文件的后缀名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 22:51:01