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

使用Python下载网络图片后无法打开该如何解决

问题原因

你下载的图片无法打开是因为目标站点配置了反爬校验,直接用requests请求图片地址时,请求没有带浏览器标识和来源页信息,被站点拦截,返回的实际是错误页面内容,并非图片二进制数据,所以保存的文件无法被识别为图片。同时你的代码存在缺失BeautifulSoup依赖导入的问题,也可能导致流程异常。

解决方案

  • 补全代码中缺失的BeautifulSoup导入语句
  • 给请求添加模拟浏览器的headers,特别要设置Referer参数为目标站点域名,通过站点的来源校验
  • 新增响应状态码判断逻辑,确认请求成功后再写入本地文件,避免无效内容存储
  • 推荐使用with语法管理文件写入,避免手动关闭文件可能出现的异常

修正后代码

from bs4 import BeautifulSoup
import requests

# 构造模拟浏览器的请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Referer': 'https://beta.mangaeden.com/'
}

url = 'https://beta.mangaeden.com/it/it-manga/jojo-no-kimyou-na-bouken---jojorion/1/1'
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
immagine = soup.find(id='mainImg')
src = str(immagine.get('src'))
link_immagine = "https:" + src
print(link_immagine)

# 下载图片
response = requests.get(link_immagine, headers=headers)
if response.status_code == 200:
    with open("C:\\Users\\chris\\Desktop\\image.jpg", "wb") as f:
        f.write(response.content)
    print('下载成功')
else:
    print(f'请求失败,状态码:{response.status_code}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:30:04