求助:如何下载维基百科图片转储以搭建离线维基?
解决离线维基百科图片下载的方案
我之前帮朋友处理过类似的离线维基部署问题,针对你遇到的图片资源缺失问题,有几个实用的方案可以尝试:
1. 直接下载官方图片转储包
Wikimedia官方提供了完整的图片文件转储(并非只有元数据的SQL文件),这些资源按语种、文件分辨率分类打包:
- 找到对应语种维基的图片转储资源,比如英文维基会提供原始分辨率、不同尺寸缩略图的打包文件
- 下载后将解压后的图片文件直接放到本地MediaWiki服务器的
images目录下 - 最后运行MediaWiki的维护脚本完成资源识别:
php maintenance/update.php
2. 利用MediaWiki API按需批量下载
如果全量图片包太大(比如英文维基全量图片超过TB级),可以按需下载页面关联的图片:
- 编写脚本(比如Python)遍历你已导入的离线维基页面,提取页面中的
File:XXX格式的图片文件名 - 通过MediaWiki API获取图片的实际下载地址,核心请求示例:
api.php?action=query&titles=File:Example.jpg&prop=imageinfo&iiprop=url - 批量下载这些图片到本地
images目录,同样运行update.php让系统识别
3. 使用专门的维基内容爬取工具
有个开源工具集WikiTeam专门用于爬取维基类站点的内容和图片:
- 它的
dumpgenerator.py脚本可以指定目标维基站点、内容范围(比如特定分类、最近更新的页面) - 脚本会自动同步页面内容和对应的图片资源,生成的文件结构可以直接适配本地MediaWiki部署
- 你可以根据自己的需求配置参数,避免下载不必要的资源
注意事项
- 维基图片受版权保护,使用时请遵守对应的授权协议(比如CC BY-SA等)
- 如果存储有限,优先选择缩略图版本的转储包,或者只下载核心内容关联的图片
内容的提问来源于stack exchange,提问作者Abhishek




