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

urllib.request遇HTTP Error 403 Forbidden,请求协助解决文件下载问题

解决urllib下载图片返回403 Forbidden的问题

网站的反爬机制会校验请求头的完整性,仅简单设置User-Agent可能无法通过验证,同时原代码未实现文件保存逻辑,且异常处理过于宽泛。以下是修正后的解决方案:

完整代码示例

import urllib.request

url = "https://wallpapercrafter.com/desktop7/1788714-Anime-InuYasha-Kagome-Higurashi-1080P.jpg"
# 构造符合真实浏览器特征的请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.5",
    "Referer": "https://wallpapercrafter.com/"
}

try:
    req = urllib.request.Request(url, headers=headers)
    with urllib.request.urlopen(req) as response:
        with open("inuyasha_wallpaper.jpg", "wb") as f:
            f.write(response.read())
    print("图片下载成功")
except urllib.error.HTTPError as e:
    print(f"HTTP错误: {e.code} - {e.reason}")
except Exception as e:
    print(f"其他错误: {str(e)}")

关键优化点

  • 完善请求头:补充Accept、Accept-Language、Referer字段,模拟真实浏览器的请求行为,绕过基础反爬校验。
  • 实现文件保存:通过response.read()读取图片二进制内容,写入本地文件完成下载。
  • 精准异常捕获:替换宽泛的except,针对性捕获HTTP错误和其他异常,便于定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:25:01