https://github.com/deingithub/seqartfetch
A near-universal webcomic/sequential art downloader.
https://github.com/deingithub/seqartfetch
python3 webcomics
Last synced: about 1 month ago
JSON representation
A near-universal webcomic/sequential art downloader.
- Host: GitHub
- URL: https://github.com/deingithub/seqartfetch
- Owner: deingithub
- License: mit
- Created: 2019-11-15T21:54:21.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-15T16:30:41.000Z (over 5 years ago)
- Last Synced: 2025-01-22T04:38:23.496Z (about 1 year ago)
- Topics: python3, webcomics
- Language: Python
- Size: 24.4 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SeqArtFetch
A near-universal webcomic/sequential art downloader. It visits each page like a human user, scraping and downloading all art images into a specified folder and by default only re-downloads new episodes.
[Available on PyPi](https://pypi.org/project/SeqArtFetch/).
## Usage
**`sqf init `**
Initializes a new comic called `name`. The program will ask for the directory to keep the files in, base url (the longest part of the URL common to all episodes), [CSS selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference#Selectors) for the art images, "next page" link, and some element indicating the last page has been reached, optionally for an override for the `User-Agent` header to fool some more restrictive hosts, and finally for the first episode's URL. After that, it will begin to fetch all episodes of the new comic. After the first episode has been downloaded correctly, you can abort the process and let it continue later using `sqf fetch`.
**`sqf fetch `**
Fetches the page of the last-downloaded episode and tries to find newer ones than it. Will not stop unless it hits the end, ~~horrifically crashes~~, or is interrupted with Ctrl-C.
**`sqf fetchall`**
A shorthand for automatically running `sqf fetch` for every comic in the configuration.
**`sqf list`**
Displays all known comics and their episode counts.
## Technical Details
Depends on Python 3.7+, `lxml`, `aiohttp`, and `cssselect` to do its work. Tested only on NixOS 19.09 thus far, but there is no reason it shouldn't work otherwise. If you use NixOS, you can directly get an isolated environment with all dependencies by just running `nix-shell` in the project root.