Локальная библиотека книг на основе tululu
Пример сайта можно посмотреть здесь.
1) Решение для автоматического скачивания книг с сайта tululu
Никаких ограничений нет. Скачать можете ровно столько книг, сколько позволяет сайт.
В проекте присутствуют 2 скрипта:
book_parser.py
- Скачивает книги по идентификатору(id
). По умолчанию, скачивает книги сid=1-10
. Это можно изменить, указав диапазонstart_id
иend_id
.book_category_parser.py
- Скачивает подборку книг. По умолчанию скачивает подборку сid=55
. Скрипт имеет множество параметров, что обеспечивает обширную опциональность:book_category_id
- Идентификатор подборки. По умолчанию55
start_page
- С какой страницы подборки скачивать книги. По умолчанию1
end_page
- До какой страницы скачивать книги. По умолчанию10
dest_folder
- Директория куда будут скачиваться книги и обложки. По умолчанию - текущая директория проектаskip_imgs
- Не скачивать картинки. По умолчанию -False
skip_txt
- Не скачивать книги. По умолчанию -False
json_path
- Путь к *.json файлу со скачанными книгами. По умолчанию -books.json
Загруженные книги по умолчанию скачиваются в директорию books
проекта. Обложки для книг - в директорию - images
.
render_website.py
- читает и разбирает файл со скачанными книгами - books.json
и с помощью шаблонизатора рендерит html-страницы библиотеки. Страницы генерируются в папке pages
проекта.
Также предусмотрена возможность запускать скрипт в режиме разработчика - is_dev_mode
.
Для удобства разработки шаблона, в проекте используется библиотека livereload
, которая запускает процесс рендеринга всякий раз, когда меняется код шаблона.
Выполните команды:
git clone https://github.com/nicko858/books-library.git
cd books-library
python3 -m venv ./venv
. venv/bin/activate
pip install -r requirements.txt
python book_parser.py
В этом случае скачаются книги с с id=1-10
.
python book_parser.py 10 35
В этом случае скачаются книги с с id=10-35
.
python book_category_parser.py
python book_category_parser.py -book_category_id=54 -end_page=2 -skip_imgs=True -json_path=/tmp/books.json
В данном случае будет скачена подборка книг с id=54
, диапазон страниц ограничится 2-мя, обложки книг не будут скачаны, файл со скачанными книгами будет располагаться в директории /tmp
.
python render_website.py -is_dev_mode
Запустится программа-демон, которая будет следить за состоянием файла шаблона template.html
.
Каждый раз, когда файл изменился, будет запускаться процесс рендеринга и в выводе пользователь будет видеть сообщение - Site reloaded
.
python render_website.py
Будут сгенерированы html-страницы библиотеки согласно файлу books.json
Сделайте исполняемым скрипт sample_download_library.sh
(chmod +x sample_download_library.sh) и запустите его:
./sample_download_library.sh