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

使用urllib下载网页图片时报HTTP Error 403: Forbidden错误如何解决

错误原因
  • 你遇到的HTTP 403 Forbidden报错是目标网站的反爬机制拦截了你的请求。urllib默认携带的请求头User-Agent会明确标识请求来自爬虫程序,bom.gov.au这类公共服务站点默认会拦截非浏览器的请求,避免服务器资源被爬虫挤占。
解决方案

你需要自定义请求头,将User-Agent修改为普通浏览器的标识,模拟正常用户访问即可正常下载资源,修改后的代码如下:

import urllib.request
import os

# 预先创建存储目录避免报错
save_path = '/content/download_gambar/'
if not os.path.exists(save_path):
    os.makedirs(save_path)

img_url = "http://www.bom.gov.au/charts_data/IDY20108/current/mslp-precip/IDY20108.mslp-precip.012.png?1634817600"
# 配置浏览器标识请求头,增加Referer模拟从站点首页跳转的请求逻辑
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',
    'Referer': 'http://www.bom.gov.au/'
}

# 构造自定义请求发起访问
req = urllib.request.Request(url=img_url, headers=headers)
with urllib.request.urlopen(req) as res, open(f"{save_path}rain.png", 'wb') as f:
    f.write(res.read())
  • 如果后续需要批量请求,建议控制请求频率,避免触发站点的频率限制规则,同时遵守站点的爬虫使用规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:15:08