能否创建一个包含整个维基百科的ZIM文件?(我的自己的,基于mediawiki)

9
我想生成我们自己的维基百科(运行在Mediawiki上)的离线ZIM版本。 Collection扩展 很容易安装,但仅适用于选择单个页面,然后可以将其合并为单个ZIM文件。但是,对于数百个页面的维基来说,这太难了,如果基于单个页面进行。我想要整个维基的zim转储。我知道这是可能的,因为也有完整维基百科的zim文件。然而,我找不到如何做到这一点。有人能帮忙吗?谢谢!

1
根据此页面,维基百科ZIM转储是使用“Mediawiki DumpHTML扩展的一个黑客版本,以及额外的自定义脚本”创建的。 - Ilmari Karonen
1
如果我理解正确的话,目前这是不可能的。也就是说,还没有软件可以做到这一点。真遗憾! - Dr.Bob
3个回答

7

我不知道这个答案的相关性能持续到什么程度,但是这里有答案...

经过很多麻烦,我终于成功地将我的私人MediaWiki-based wiki创建为一个ZIM文件:

我从这个页面开始:OpenZIM - 构建ZIM文件。 我尝试了所有列出的可能性,但只有mwoffliner适用于我。 安装是在Mac(macOS Mojave,vs. 10.14.2)上托管的Ubuntu 18.10 Desktop guest的VirtualBox(版本6.0.0)中进行的。 请注意,最终我使用Guest OS作为无头模式,因此图形界面变得无用,下一步将是使用Ubuntu的服务器版本。 经过多次努力,我设法使mwoffliner工作,但也离不开GitHub上开发人员的帮助。
请看下面的逐步说明,了解我所做的事情。请注意,主要的指令来自于mwoffliner分支的GitHub上的openZIM,因此这些指令的大部分功劳归功于他们。 NodeJS
$ sudo apt install curl
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash && source ~/.bashrc && nvm install stable && node --version

图像处理、Redis、git、meson、gcc、g++和pkg-config安装

$ sudo apt install jpegoptim advancecomp gifsicle pngquant imagemagick redis-server git meson g++ pkg-config libzim-dev

libzim-dev: 从版本2.0.0手动升级到版本>=4.0.0

1- 如果已经安装了libzim 2.0.0(libzim-dev),则继续卸载它,否则继续进行第2步。

$ sudo apt remove libzim-dev #removes libzim 2.0.0
$ sudo apt purge libzim-dev
$ sudo apt autoremove #removes libzim2

2- 安装 libzim 版本 >=4.0.0

$ sudo apt install cython3 liblzma-dev libgumbo-dev libicu-dev libmagic-dev libxapian-dev python-dev python-pip python-virtualenv zlib1g-dev
$ git clone https://github.com/openzim/libzim.git
$ cd libzim
$ meson . build
$ ninja -C build
$ sudo ninja -C build install
$ sudo ldconfig

ZimWriterFS 手动安装

(源代码)

$ cd ~/Downloads/
$ sudo apt install librsvg2-bin
$ git clone https://github.com/openzim/zimwriterfs.git
$ cd zimwriterfs
$ meson . build
$ ninja -C build
$ sudo ninja -C build install
$ zimwriterfs
zimwriterfs usage page should appear

VirtualBox - 从主机操作系统访问VirtualBox客户机
  • (源代码)

    1. 启动VirtualBox 6.x.x
    2. 点击菜单文件
    3. 选择主机网络管理器...
    4. 选择DHCP服务器选项卡
    5. 点击创建(窗口左上角)
    6. 选择启用服务器
    7. 服务器地址:192.168.56.2
    8. 服务器掩码:255.255.255.0
    9. 下限地址:192.168.56.3
    10. 上限地址:192.168.56.254
    11. 选择适配器选项卡
    12. 确认“手动配置适配器”已选中,然后,
    13. IPv4地址:192.168.56.1
    14. IPv4网络掩码:255.255.255.0
    15. 点击关闭
    16. 右键单击客户机
    17. 选择设置...(或按cmd-s)
    18. 选择网络选项卡
    19. 选择适配器2选项卡
    20. 点击启用网络适配器
    21. 附加到:选择仅主机适配器
    22. 名称:vboxnet0
    23. 点击确定
    24. 启动客户机

mwoffliner命令已发出

该命令假定:

  • MediaWiki维基正在运行中,
  • VirtualBox将IP地址192.168.56.5分配给了虚拟机操作系统 (请参阅上面的VirtualBox - 从主机操作系统访问VirtualBox Guest的说明)(使用ifconfig检查操作系统的IP地址)
  • LocalSettings.php$wgServer = "http://192.168.56.5";(使用ifconfig检查操作系统的IP地址)
  • 您的维基名称为YourWiki
  • 包含您的维基的MediaWiki文件夹位于/var/www/html/(即/var/www/html/YourWiki)

实际命令:

mwoffliner --mwUrl=http://192.168.56.5/YourWiki --adminEmail=foo@bar.net --verbose --redis=redis://127.0.0.1:6379 --mwWikiPath=/ --mwApiPath=api.php --localParsoid


谢谢。这对于他们所称的“免费和开放、高度压缩的格式”来说是很多工作。此外,Kiwix提供的ZIM文件现在已经有大约1年的历史了……我记得以前我有一个口袋PC。不知怎么回事,那时候这个更容易…… - user2305193

1

有一些工具您可能想要测试。有些已被删除,但大多数正在开发中。

以下是有关如何准备材料和使用 zimwriterfs 的一些注意事项。这些笔记不完整,因为它们基于我有限的使用该工具的经验(摘自http://www.openzim.org/wiki/Build_your_ZIM_file

这里是从现有HTML内容创建ZIM文件的链接 “请参阅http://www.openzim.org/wiki/Zimwriterfs_instructions获取概述,并阅读下面关于zimwriterfs的一些其他上下文信息”

我尝试过另一个名为Zim - A Desktop Wiki http://zim-wiki.org/ 的Windows程序,虽然功能有限,但您可以尝试一下。它的功能相反,将ZIM转换为HTML。

无论如何,让我们知道进展如何,我也对构建自己的zim文件很感兴趣。祝你好运。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接