• Stars
    star
    217
  • Rank 182,446 (Top 4 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

StackExchange websites to ZIM scraper

Sotoki

Sotoki (Stack Overflow to Kiwix) is an openZIM scraper to create offline versions of Stack Exchange websites such as Stack Overflow.

It is based on Stack Exchange's Data Dumps hosted by The Internet Archive.

CodeFactor Docker License: GPL v3 PyPI version shields.io

Usage

Sotoki works off a domain that you must provide. That is the domain-name of the stackexchange website you want to scrape. Run sotoki --list-all to get a list of those

Docker

docker run -v my_dir:/output ghcr.io/openzim/sotoki sotoki --help

Installation

sotoki is a Python3 software. If you are not using the Docker image, you are advised to use it in a virtual environment to avoid installing software dependencies on your system.

python3 -m venv ./env  # creates a virtual python environment in ./env folder
./env/bin/pip install -U pip  # upgrade pip (package manager). recommended
./env/bin/pip install -U sotoki  # install/upgrade sotoki inside virtualenv

# direct access to in-virtualenv sotoki binary, without shell-attachment
./env/bin/sotoki --help
# alias or link it for convenience
sudo ln -s $(pwd)/env/bin/sotoki /usr/local/bin/

# alternatively, attach virtualenv to shell
source env/bin/activate
sotoki --help
deactivate  # unloads virtualenv from shell

Developers

Anybody is welcome to improve the Sotoki.

To run Sotoki off the git repository, you'll need to download a few external dependencies that we pack in Python releases. Just run python src/sotoki/dependencies.py.

See requirements.txt for the list of python dependencies.

Users

You don't have to make your own ZIM files of Stack Exchange's Web sites. Updated ZIM files are built on a regular basis for all of them. Look at https://library.kiwix.org/?category=stack_exchange to download them.

More Repositories

1

zimit

Make a ZIM file from any Web site and surf offline!
Python
335
star
2

mwoffliner

Mediawiki scraper: all your wiki articles in one highly compressed ZIM file
TypeScript
285
star
3

libzim

Reference implementation of the ZIM specification
C++
166
star
4

gutenberg

Scraper for downloading the entire ebooks repository of project Gutenberg
Python
130
star
5

zim-tools

Various ZIM command line tools
C++
127
star
6

zimfarm

Farm operated by bots to grow and harvest new zim files
Python
83
star
7

python-libzim

Libzim binding for Python: read/write ZIM files in Python
Python
63
star
8

youtube

Create a ZIM file from a Youtube channel/username/playlist
Python
48
star
9

warc2zim

Command line tool to convert a file in the WARC format to a file in the ZIM format
Python
44
star
10

zim-requests

Want a new ZIM file? Propose ZIM content improvements or fixes? Here you are!
37
star
11

zimwriterfs

[ARCHIVED] Create ZIM files based from a directory on your local filesystem
C++
36
star
12

node-libzim

Libzim binding for Node.js: read/write ZIM files in Javascript
C++
27
star
13

ifixit

iFixit to ZIM scraper
Python
25
star
14

wp1

Wikipedia 1.0 engine & selection tools
Python
24
star
15

nautilus

Turns a collection of documents into a browsable ZIM file
Python
21
star
16

python-scraperlib

Collection of Python code to re-use across Python-based scrapers
Python
19
star
17

wikihow

WikiHow scraper
Python
16
star
18

ted

Provide the best of TED.com for offline usage!
Python
13
star
19

zimit-frontend

Zimit Public Web UI
Vue
9
star
20

kolibri

Convert a Kolibri channel in ZIM file(s)
Python
8
star
21

openedx

Open edX (to zim) scraper
Python
8
star
22

phet

Scraper for PhET Science & Math Interactive Simulations
JavaScript
7
star
23

zip2zim

[ARCHIVED] Convert Zip Files to Zim Files
JavaScript
6
star
24

wp1_selection_tools

Create selections with the best articles of a WM project
Perl
6
star
25

zimreader-java

[ARCHIVED] ZIM file reader in Java
Java
5
star
26

freecodecamp

FreeCodeCamp.org scraper (to ZIM)
Python
4
star
27

cms

ZIM file Publishing Platform
Python
4
star
28

docker-publish-action

Docker Publish Action for OpenZIM projects
Python
4
star
29

education-numerique

Éducation & Numérique scraper
Python
3
star
30

zim-testing-suite

This repository contains testing zim files for libzim and other openzim repositories.
PHP
3
star
31

overview

🎈 Start here for current projects, how to get involved, and joining community calls. A resource for new and veteran members of the offline commmunity
2
star
32

zimfarm-client

Command line tool to deal with the Zimfarm
Python
2
star
33

nautilus-webui

SaaS Web UI for nautilus
Python
1
star
34

python-storagelib

S3 Cache wrapper to use within Kiwix/OpenZIM/Offspot projects
Python
1
star
35

zimreader-tntnet

[ARCHIVED] ZIM file reader using tntnet HTTP server
CSS
1
star
36

devdocs

devdocs.io to ZIM scraper
Python
1
star
37

_python-bootstrap

Sample openZIM Python project bootstrap
Python
1
star
38

xapian-meson

Xapian ( 1.4.23) source code with meson build system
C++
1
star
39

lilote

Generate a Lilote ZIM file from a Lilote export JSON
JavaScript
1
star