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

Python使用wget下载PDF报HTTP Error 403: Forbidden怎么解决

批量下载PDF程序Windows Server 2016环境报错排查方案
  • 确认依赖合法性:Windows Server 2016默认无内置wget组件,若你使用的Python wget库依赖系统级wget会直接触发报错,优先替换为无额外系统依赖的requests库实现下载逻辑。
  • 路径权限校验:Windows Server权限管控规则更严格,确认程序运行账户对pasta_pdf对应目录拥有写入权限,避免os.chdir操作或文件写入时触发权限拒绝错误。
  • 网络策略校验:Windows Server默认防火墙、IE安全等级配置较高,先手动在服务器内置浏览器访问任意一个下载链接,确认网络连通性、无SSL拦截、无站点访问限制。
  • 异常兼容优化:原有逻辑仅判断链接非空,未覆盖无效URL、请求超时、服务端拒绝访问等异常场景,可参考以下优化后的代码实现:
import os
import requests
import pandas as pd

def download_doc(pasta_pdf, base_links):
    # 直接指定存储路径,避免修改全局工作目录带来的潜在冲突
    for idx, link in enumerate(base_links['Link_Download_Regulamento']):
        # 兼容pandas空值判断,覆盖None、NaN等多种空场景
        if pd.isna(link):
            continue
        try:
            # verify参数可根据链接是否为自签名SSL证书调整开启或关闭
            resp = requests.get(link, timeout=30, verify=False)
            # 校验HTTP请求状态码,非200直接抛出异常
            resp.raise_for_status()
            # 自定义文件名避免重复冲突
            file_save_path = os.path.join(pasta_pdf, f"regulamento_{idx}.pdf")
            with open(file_save_path, 'wb') as f:
                f.write(resp.content)
        except Exception as e:
            print(f"链接{link}下载失败,错误详情:{str(e)}")

download_doc(pasta_origem, df_regulamentos_novos)
  • 若坚持使用wget库,需先在服务器对应Python环境执行pip install wget确认库安装完成,同时排查系统环境变量中是否存在同名wget程序导致调用冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:57:01