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

Python 3.9.x下载维基百科本地图片失败,求助解决方法

问题解决:维基百科图片无法正确下载的原因及修复方案

你的核心问题是使用了维基百科的页面URL,而非图片的直接资源链接。浏览器地址栏里的https://en.wikipedia.org/wiki/Abacus#/media/File:Abacus_4.jpg是带锚点的页面地址,指向的是维基百科的文章页面(仅定位到图片在页面中的位置),而非图片本身的下载链接——你实际下载的是网页HTML内容,而非图片文件,这就是为什么文件无法打开、大小和手动下载不一致的原因。

修复步骤:

  • 获取图片的直接资源链接:在维基百科页面的目标图片上右键,选择「复制图片地址」(不同浏览器选项表述略有差异),你会得到类似https://upload.wikimedia.org/wikipedia/commons/8/84/Abacus_4.jpg的直接URL(这是该图片的原始资源链接)。
  • 修改代码,替换为正确的图片URL:
import urllib.request

# 使用图片的直接资源链接
img_url = 'https://upload.wikimedia.org/wikipedia/commons/8/84/Abacus_4.jpg'
urllib.request.urlretrieve(img_url, 'test.jpg')

如果担心User-Agent拦截问题,也可以保留User-Agent设置,但核心必须替换为图片的直接URL:

import urllib.request

opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36')]
urllib.request.install_opener(opener)

img_url = 'https://upload.wikimedia.org/wikipedia/commons/8/84/Abacus_4.jpg'
urllib.request.urlretrieve(img_url, 'test.jpg')

执行以上代码后,下载的文件就是完整的图片,大小和手动下载一致,也能正常用Preview打开。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:55:15