zimit

openzimGPL-3.0活跃维护

把任意网站抓取打包成 ZIM 离线文件,配合 Kiwix 就能在无网络环境下浏览完整站点。

Make a ZIM file from any Web site and surf offline!

v3.1.3发布于 2026-07-31 15:45 UTC864star51fork同步于 2026-11-10 17:55 UTC

怎么上手

由 README 提炼,执行前请确认
docker run -v /output:/output ghcr.io/openzim/zimit zimit --seeds URL --name myzimfile
硬件要求按 README 说明

README 未说明具体硬件要求,仅说明以 Docker 容器方式运行

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把任意网站抓取打包成 ZIM 离线文件,用浏览器爬取后转成可离线浏览的归档

把任意网站抓取打包成 ZIM 离线文件,配合 Kiwix 就能在无网络环境下浏览完整站点。

核心能力

  • 用 Browsertrix Crawler 自动浏览器爬取网站生成 WARC
  • 用 warc2zim 把 WARC 合并转换为单个 ZIM 文件
  • 支持 --pageLimit 限制抓取 URL 数量
  • 支持 --scopeExcludeRx 正则排除指定 URL
  • 内置三份广告黑名单自动过滤广告

容易踩的坑

必须把 /output 挂载为卷,否则容器停止后生成的 ZIM 会丢失;镜像默认启用广告过滤,不需要时要用 --entrypoint="" 禁用入口点;--seeds 与 --name 为必填参数,且首个 seed URL 会成为 ZIM 首页

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v3.1.3
  1. v3.1.33.1.3最新正式版2026-07-31 · 2026-07-31 15:45 UTC

    Changed

    • Upgrade to browsertrix crawler 1.14.1, warc2zim 2.3.1, zimscraperlib 5.4.1 (#569, #572, #575)
  2. v3.1.23.1.22026-02-03 · 2026-02-03 08:09 UTC
    查看更新说明

    Changed

    • Upgrade to browsertrix crawler 1.11.2 (#542)
  3. v3.1.13.1.12026-01-24 · 2026-01-24 13:55 UTC
    查看更新说明

    Changed

  4. v3.1.03.1.02026-01-21 · 2026-01-21 20:08 UTC
    查看更新说明

    Added

    • Added --overwrite flag to overwrite existing ZIM file if it exists (#399)

    Changed

    • Fix issues preventing interrupted crawls from being resumed. (#499)
      • Ensure build directory is used explicitly instead of a randomized subdirectory when passed, and pre-create it if it does not exist.
      • Use all warc_dirs found instead of just the latest so interrupted crawls use all collected pages across runs when an explicit collections directory is not passed.
      • Don't cleanup an explicitly passed build directory.
    • Upgrade to browsertrix crawler 1.11.1 and Python 3.14 + small other Python dep / Github actions upgrades (#532)
    • Add back publishing of arm64 Docker image (#463)
  5. v3.0.53.0.52025-04-11 · 2025-04-11 07:28 UTC
    查看更新说明

    Changed

    • Upgrade to browsertrix crawler 1.6.0 (#493)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Zimit

    Zimit is a scraper allowing to create ZIM file from any Web site.

    CodeFactor License: GPL v3 Docker

    Zimit adheres to openZIM's Contribution Guidelines.

    Zimit has implemented openZIM's Python bootstrap, conventions and policies v2.0.0.

    Capabilities and known limitations

    While we would like to support as many websites as possible, making an offline archive of any website with a versatile tool obviously has some limitations.

    Most capabilities and known limitations are documented in warc2zim README. There are also some limitations in Browsertrix Crawler (used to fetch the website) and wombat (used to properly replay dynamic web requests), but these are not (yet?) clearly documented.

    Technical background

    Zimit runs a fully automated browser-based crawl of a website property and produces a ZIM of the crawled content. Zimit runs in a Docker container.

    The system:

    • runs a website crawl with Browsertrix Crawler, which produces WARC files
    • converts the crawled WARC files to a single ZIM using warc2zim

    The zimit.py is the entrypoint for the system.

    After the crawl is done, warc2zim is used to write a zim to the /output directory, which should be mounted as a volume to not loose the ZIM created when container stops.

    Using the --keep flag, the crawled WARCs and few other artifacts will also be kept in a temp directory inside /output

    Usage

    zimit is intended to be run in Docker. Docker image is published at https://github.com/orgs/openzim/packages/container/package/zimit.

    The image accepts the following parameters, as well as any of the Browsertrix crawler and warc2zim ones:

    • Required: --seeds URL - the url to start crawling from ; multiple URLs can be separated by a comma (even if usually not needed, these are just the seeds of the crawl) ; first seed URL is used as ZIM homepage
    • Required: --name - Name of ZIM file
    • --output - output directory (defaults to /output)
    • --pageLimit U - Limit capture to at most U URLs
    • --scopeExcludeRx <regex> - skip URLs that match the regex from crawling. Can be specified multiple times. An example is --scopeExcludeRx="(\?q=|signup-landing\?|\?cid=)", where URLs that contain either ?q= or signup-landing? or ?cid= will be excluded.
    • --workers N - number of crawl workers to be run in parallel
    • --waitUntil - Puppeteer setting for how long to wait for page load. See page.goto waitUntil options. The default is load, but for static sites, --waitUntil domcontentloaded may be used to speed up the crawl (to avoid waiting for ads to load for example).
    • --keep - in case of failure, WARC files and other temporary files (which are stored as a subfolder of output directory) are always kept, otherwise they are automatically deleted. Use this flag to always keep WARC files, even in case of success.

    Example command:

    docker run ghcr.io/openzim/zimit zimit --help
    docker run ghcr.io/openzim/zimit warc2zim --help
    docker run  -v /output:/output ghcr.io/openzim/zimit zimit --seeds URL --name myzimfile
    

    Note: Image automatically filters out a large number of ads by using the 3 blocklists from anudeepND. If you don't want this filtering, disable the image's entrypoint in your container (docker run --entrypoint="" ghcr.io/openzim/zimit ...).

    To re-build the Docker image locally run:

    docker build -t ghcr.io/openzim/zimit .
    

    FAQ

    The Zimit contributor's team maintains a page with most Frequently Asked Questions.

    Nota bene

    While Zimit 1.x relied on a Service Worker to display the ZIM content, this is not anymore the case since Zimit 2.x which does not have any special requirements anymore.

    It should also be noted that a first version of a generic HTTP scraper was created in 2016 during the Wikimania Esino Lario Hackathon.

    That version is now considered outdated and archived in 2016 branch.

    License

    GPLv3 or later, see LICENSE for more details.