Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

tankobon

logo

Code style: black PyPI - Downloads PyPI - License PyPI PyPI - Python Version Lines of code

What?

tankobon is a website scraper for comics and mangas. tankobon relies on stores, which define how to parse a website for chapters and chapters for links to the pages themselves. (somewhat like youtube-dl extractors.) Currently, the following websites are supported:

  • komi-san.com
  • m.mangabat.com
  • mangadex.org
  • mangakakalot.com

Creating a Store

A store is a regular Python module in the stores/ folder. It should provide a Parser class, which is a subclass of tankobon.manga.Parser. The following methods below must be implemented:

chapters(self) -> Generator[Tuple[str, Dict[str, str]], None, None]

Yields chapter_info which looks like this:

{
    "id": ...,  # chapter number
    "title": ...,  # chapter title
    "url": ...,  # chapter url
    "volume": ...,  # volume, i.e '0'
}

Volume is optional and may be undefined. Example:

def chapters(self):
    # use self.soup to access the title page
    for href in self.soup.find_all("a", href=True):
        # validify href here and parse chapter id
        ...
        yield {"id": ..., "title": href.text, "url": href["href"]}

pages(self, chapter_data: Dict[str, str]) -> List[str]

Return a list of urls to a chapter's pages, given the chapter data yielded from chapters(). The pages must be in order (page 1 is [0], page 2 is [1], etc.) Example:

def pages(self, chapter_data):
    pages = []
    # to get the chapter's html, use self.session.get (requests session)
    # or self.soup (html already parsed by BeautifulSoup).
    chapter_page = self.soup_from_url(chapter_data["url"])

    for href in chapter_page.find_all("a", href=True):
        # validify href here
        ...
        pages.append(href["href"])
    return pages

The following methods below may or may not be implemented: generic implementations are provided.

title(self) -> str

Return the title of the manga. Example:

def title(self):
    return self.soup.title

Index Compatibility

Between version v3.1.0a1 and v3.2.0a0, the location of the index file has moved from site-packages to ~/.tankobon/index.json, specific to each install of tankobon.

Todo

  • download pre-parsed indexes from a special Github repo (tankobon-index?)
  • create GUI to make downloading easier (like youtube-DLG)

Usage

tankobon download 'https://komi-san.com'  # download all chapters
tankobon store info 'komi_san/https://komi-san.com'  # and then get info on the chapters

Install

python(3) -m pip install tankobon

Build

All my python projects now use flit to build and publish. To build, do flit build.

License

MIT.

Release files for tankobon 5.0.0b0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tankobon 5.0.0b0
File Size Uploaded
tankobon-5.0.0b0.tar.gz 24.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tankobon 5.0.0b0
File Interpreter ABI Platform
tankobon-5.0.0b0-py3-none-any.whl Python 3 none any Details

Total release size: 39.3 kB

Release files / tankobon-5.0.0b0.tar.gz

Download URL tankobon-5.0.0b0.tar.gz
Size 24.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6e36f76fa2d97ca0819ad0bd63f513724b200e5d4d1066bf25882fd8dfc969cf
BLAKE2b-256 checksum
How to use checksums
7d54b49fbdc932bde2f62d02fe718c42419b8b351bc7bdfdda321916119c83dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release files / tankobon-5.0.0b0-py3-none-any.whl

Download URL tankobon-5.0.0b0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3d21eda97358ec8d03c316eaf6bc258d214584f46b9b69fe56a7db11083ea8c
BLAKE2b-256 checksum
How to use checksums
c72441beb79b4d75d4b109bf7bade9f417607c521fe5102a6bb72ab55a0b124a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release history Release notifications | RSS feed

6.3.0

2 release files

6.2.0

2 release files

6.1.1

2 release files

6.0.0

2 release files

This release

5.0.0b0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page