Тема: CMD/BASH: Скачивание книг
Уже некоторое время успешно пользуюсь электронной книгой. Нравится. Соответственно появилось новое пристрастие - расширение библиотеки электронных изданий, которые можно скачать в разных форматах из разных источников в интернете. Решил частично автоматизировать процесс скачивания доступных сочинений определенного автора. В результате получился такой скрипт.
.
Требования
www.likebook.ru
wget, grep, sed, tr - утилиты, доступные в Cygwin, UnixUtils или GnuWin32
.
Код скрипта likebook.bat
@echo off
setlocal
set "book_url=http://www.likebook.ru"
if "%~1" == "" (
echo.Usage: %~n0 addr [type]
echo.addr URL in one of the following forms
echo. %book_url%/authors/download/[0-9]*/
echo. %book_url%/authors/view/[0-9]*/
echo.type fb2 ^(default^), html or txt
goto :EOF
)
set book_logfile=%~n0.log
set book_type=fb2
if /i "%~2" == "fb2" set book_type=fb2
if /i "%~2" == "html" set book_type=html
if /i "%~2" == "txt" set book_type=txt
wget -o "%book_logfile%" -cO - "%~1" | grep -o "/books/download/[0-9]*/" | grep -o "[0-9]*" | sed -e "s/.*/\/open\/load.php?book=&/" | wget -o "%book_logfile%" -B "%book_url%" -i - -cO - | tr -d \ | grep -o "/books/%book_type%/[0-9]*/?key=[0-9a-zA-Z]*" | wget -o "%book_logfile%" -B "%book_url%" -i - --content-disposition -c -nc
del index.html* 2>nul.
Принцип работы
Скрипт предназначен для массового скачивания всех доступных на сайте www.likebook.ru произведений заданного автора. Требует наличие на вашем компьютере программ, указанных в разделе Требования.
Скопируйте и сохраните код скрипта в файл likebook.bat. Найдите на сайте страницу определенного автора, скопируйте URL страницы и запустите скрипт, передав ему запомненную страницу. По умолчанию скрипт скачивает книги в формате fb2, однако можно вторым параметром указать один из поддерживаемых форматов: fb2, html, txt.
В процессе своей работы скрипт создает в текущем каталоге лог-файл likebook.log, который по завершении можно удалить.
Программа не выполнят проверки корректности заданного URL (в этом нет необходимости). Загружаются только доступные для скачивания файлы. Файлы сохраняются в текущем каталоге.
Из указанной страницы выделяются ID книг. Из них формируется новый URL, так как сайтом используется AJAX для вывода ссылок на скачивание. Из полученных данных формируются реальные ссылки для скачивания файлов, которые последовательно выгружаются на диск.
.
Пример
Команда скачает все fb2-книги Пушкина в текущий каталог.
likebook http://www.likebook.ru/authors/view/11583/
