Skip to main content

从 iFixit 文章制作 ZIM 文件

项目描述

我修复它

ifixit2zim是一个openZIM 抓取工具,用于以所有支持的语言创建iFixit网站的离线版本。

代码因子 码头工人 许可证:GPL v3 PyPI 版本 shields.io

该爬虫下载 iFixit 资源(类别、指南等)并将它们放入 ZIM 文件中,这是一种干净且用户友好的格式,用于存储内容以供离线使用。

用法

ifixit2zim使用您必须通过参数提供的语言版本。--language支持的语言列表在--help消息中可见。

码头工人

docker run -v my_dir:/output openzim/ifixit ifixit2zim --help

Python

ifixit2zim是一个 Python3 ( 3.6+ ) 软件。如果您不使用Docker镜像,建议您在虚拟环境中使用它,以避免在您的系统上安装软件依赖项。除了 Python3,您还需要按照此处的建议安装最新的 pip、setuptools 和 wheel (wheel 很重要,因为您必须构建一些依赖项)。

python3 -m venv .venv
source .venv/bin/activate

# using published version
pip3 install ifixit2zim
ifixit2zim --help

# running from source
pip3 install -r requirements.pip
python3 ifixit2zim/ --help

调用deactivate退出虚拟环境。

有关requirements.txtpython 依赖项的列表,请参阅。

贡献

欢迎所有贡献!

请在 Github 上打开一个问题和/或提交一个拉取请求。

指导方针

  • 不要接受分配的问题。评论是否过时。
  • 如果您的贡献远非微不足道,请先打开一个问题进行讨论。
  • 确保您的代码通过了黑色格式isortflake8(88 个字符)

创建合适的 Python 环境

第一次:

python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.pip

下次:

source .venv/bin/activate

注意:在 MacOS 上执行底层 libzim 库存在一些已知错误。主要问题是全文索引不起作用,因此对于快速测试来说这应该不是问题。如有疑问,请在 Docker 容器中执行刮板,如下所述。

在 Docker 容器中测试刮板

首先,构建 Docker 镜像(在这个 repo 的主文件夹中运行):

docker build -t openzim/ifixit:local .

然后使用测试所需的 CLI 参数运行刮板(ifixit2zim以下示例中的所有内容)。

例如,如果您只想Apple_PDA用法语抓取类别,包括其指南:

docker run -it -v $(pwd)/output:/output --rm openzim/fixit:local ifixit2zim --language fr --output /output --tmp-dir /tmp --category Apple_PDA

这将在您当前目录的输出文件夹中生成一个 ZIM。

测试生产的ZIM

要测试生成的 ZIM 是否正常,您应该再次使用 Docker 运行 kiwix-serve。

例如,如果您在子文件夹中生成了一个名为ifixit_fr_selection_2022-04.zimoutput文件,并且您的机器上未使用端口 1256,您可以运行:

docker run -it --rm -v $(pwd)/output:/data -p 1256:80 kiwix/kiwix-tools kiwix-serve /data/ifixit_fr_selection_2022-04.zim

然后在您喜欢的浏览器上导航到 ( https://localhost:1256 )。

测试完成后,您可以按 Ctrl-C 停止 Docker 容器

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ifixit2zim-0.2.1.tar.gz (997.2 kB 查看哈希)

已上传 source

内置分布

ifixit2zim-0.2.1-py3-none-any.whl (1.0 MB 查看哈希

已上传 py3