A Python-based application to scrape, download, and compact web novels into EPUB files for eReaders. This tool supports multiple websites and provides both a graphical user interface (GUI) and a terminal-based interface for ease of use.
- Scrape Web Novels: Automatically fetch chapters from supported websites.
- Download Chapters: Save chapters in a structured format.
- Compact into EPUB: Convert downloaded chapters into an EPUB file for eReaders.
- Supported Websites:
- Graphical User Interface: Built with
customtkinterfor a modern and user-friendly experience. - Terminal Interface: For users who prefer command-line operations.
- Python Version: Python 3.11.6 (or higher is recommended).
- Required Libraries: Install the dependencies listed in
requirements.txt.
-
Clone the repository:
git clone https://github.com/your-username/novel-dl.git cd novel-dl -
Install the required libraries:
pip install -r requirements.txt
Run the following command to launch the GUI:
python3 ui_novel_dl.pyRun the following command to use the terminal-based interface:
python3 novel_dl.py- Input the Novel URL: Provide the URL of the novel's main page (not a specific chapter).
- Example formats:
https://novelhi.com/s/NovelNamehttps://www.lightnovelhub.org/novel/NovelName
- Example formats:
- Select Chapters:
- Specify the starting and ending chapter numbers.
- Alternatively, choose to download all chapters.
- Download and Convert:
- The application will scrape the chapters, download them, and convert them into an EPUB file.
- Output:
- The EPUB file will be saved in the same directory as the script.
The following Python libraries are required for this project:
fake_useragent: For generating random user agents.beautifulsoup4: For parsing HTML content.requests: For making HTTP requests.pypandoc: For converting text files into EPUB format.selenium: For handling dynamic web pages.Pillow: For image processing.customtkinter: For creating the GUI.
Install them using:
pip install -r requirements.txt- Ensure you have the latest version of Chrome and the corresponding ChromeDriver installed for Selenium to work.
- The application has been tested on Python 3.11.6. Compatibility with older versions is not guaranteed.
Feel free to fork the repository and submit pull requests for improvements or new features.
This project is licensed under the MIT License. See the LICENSE file for details.



