KonH / LivelibExport

Скрипт для экспорта прочитанного на Livelib в CSV-файл

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LivelibExport

Краткое описание

Сервис https://www.livelib.ru не предоставляет удобного способа для экспорта прочитанного (как встроенной так и через API), поэтому был сделан отдельный скрипт для этого. Его использование поможет вам отвязаться от этого сервиса и иметь возможность мигрировать куда-нибудь еще.

Экспорт книг из LiveLib в CSV

  • Войти на сайт
  • Открыть ссылку вида https://www.livelib.ru/reader/userName/read/print, где userName - ваше имя пользователя
  • Скачать текущее содержимое страницы в файл любым методом в файл read.html в папке со скриптом (возможная проблема - книги из файла не обнаруживаются скриптом, в таком случае следует создать html файл вручную и скопировать в него содержимое страницы из DevTools браузера)
  • Установить python3 (https://www.python.org/downloads/) и pip3 (https://pip.pypa.io/en/stable/installing/)
  • Установить зависимость: pip3 install lxml
  • Запустить скрипт: python3 export.py
  • Дополнительная опция --convert-10-star-rating=True может использоваться для указания того будут ли конвертироваться 10-звездные и дробные рейтинги в 5-звездные рейтинги (см. issue), по-умолчанию указывать этот ключ не нужно, он требуется только при включенных в настройках 10-звездных рейтингах
  • Дополнительная опция --rating-convert-ceiling=True используется в случае конвертации рейтингов и определяет, в какую сторону будет округлятся рейтинг (4,5: в случае True он станет 5, в случае False - 4)
  • Дополнительная опция --parse-books-without-rating=False используется, если необходимо конвертировать книги без указанного рейтинга (по умолчанию они игнорируются)
  • В случае возникновения проблем при получении содержимого страниц можно воспользоваться дополнительным режимом использования прокси-сервера FlareSolverr:
    • Использовать docker-образ, готовые исполняемые файлы или собрать из исходников - https://github.com/FlareSolverr/FlareSolverr
    • Запустить сервер и дождаться его инициализации (Test successful в логе FlareSolverr)
    • Указать дополнительную опцию --proxy-host=localhost:8191 (значение по-умолчанию, может быть иным, указывается в логе FlareSolverr, 0.0.0.0 нужно заменить на localhost)
    • После этого вместо прямых запросов для получения содержимого страниц будет использоваться FlareSolverr
    • Это может решить основные проблемы, но не является гарантией (конкретно в случае Livelib определение блокировки работает некорректно)
    • Также в случае проблем может быть полезно: перезапустить сервер, зайти на сайт с помощью браузера и пройти проверку вручную, подождать некоторое время или сменить используемую сеть
  • Также возможно изменить задержки по-умолчанию с помощью параметров --min-delay=90 и --max-delay=120 (значения указываются в секундах)
  • Будет загружен список книг из read.html и начата загрузка информации по ним
  • Подождать завершения процесса
  • Может потребоваться много времени, т.к. запросы отправляются с интервалом в 90-120 сек чтобы не было проблемы с блокировкой на стороне сервиса (это значение может быть изменено в скрипте, на свой страх и риск)
  • Итоговый файл out.csv будет содержать имя автора/авторов, название, ISBN и рейтинг, поставленный книге
  • Если для каких-то книг не было найдено ISBN, это будет отображено в логе и можно будет их добавить вручную
  • Отсутствующий ISBN означает следующее:
    • Он не указан на странице, тогда можно попробовать его найти в других источниках
    • Его нет в принципе, тогда этот метод экспорта не поможет
    • Есть необработанная ситуация в парсере, тогда можно завести issue здесь с указанием ссылки на страницу
  • Итоговый файл пригоден для импорта на https://goodreads.com, но потенциально может быть использован и в других случаях
  • Исходный код проекта открыт, issue по изменениям и багам можно присылать, pull request'ы будут рассматриваться

About

Скрипт для экспорта прочитанного на Livelib в CSV-файл

License:MIT License


Languages

Language:Python 100.0%