Zenno в ухе: качаем аудиокниги на GET-запросах.

  • Автор темы Автор темы Ingvar
  • Дата начала Дата начала

Ingvar

Client
Регистрация
28.11.2019
Сообщения
66
Реакции
68
Баллы
18
128660


0.Вместо введения
Дисклеймер:Все совпадения случайны,скачанные в прикреплённом видео произведения не отрражают вкусовые предпочтения автора за исключением маниакальной любви к хорошему печатному слову а шаблон предоставлен исключительно в познавательных целях.автор не такое унылое г а просто записывал видео из закрепа в 4утра).

Дорогие форумчане,
мое участие в конкурсе это проба пера чтобы почувствовать формат так-сказать и желание поделиться с сообществом чем-то полезным в ответ на тот объем знаний который оно даёт.Пропущу с вашего позволения историю ставшую тут былинной о том как Зенка лежала у меня на печи тридцать лет и три года и потом воспряла на подвиги богатырские,собственно так оно и было.

С возрастом и увеличением очковых диоптрий я стал очень избирателен к тому на что потратить оставшийся глазной ресурс и в мою жизнь плотно вошли аудиокниги.Разумно рассудив что глаза Гомера не так часто сочетаются с ушами Бетховена я начал яростно эксплуатировать ушной ресурс потребляя печатное слово в звуке,после недолгих усилий нашел для себя сайт "книга в ухе" удовлетворяющий потребности в контенте онлайн.Но как обычно не бывает без но.По роду деятельности путешествуя по необъятной -автомобилем,поездом самолётом,столкнулся с тем что мобильный интернет зачастую очень дискретная штука что сказывается на качестве прослушивания и крадёт очарование повествования,плюс есть грех- я рыболов и оч приятно в глуши посидеть с удой под хорошую книжечку и апперетив, ну а там-то уж без связи.Поэтому Зенка и в ухе и в ухЕ так сказать и было решено книги качать.Для чего написан шаблон который меня выручает ,его я и представляю.

1.Функционал шаблона

Этот шаблон выполнен на основе GET-запросов и позволяет скачивать последовательно любое количество аудиокниг, ссылки на которые вы поместите в файл donor txt , с сайта: https://knigavuhe.org Скачанные книги будут размещены в директориях с английским названием и снабжены файлом с кратким содержанием произведения.
2.Список переменных
Сам шаблон состоит из следующих переменных:
Переменная get, это переменная в которую парсится содержимое страницы,
Переменная link-переменная в которую кладется ссылка на скачивание.
Переменная result - это Переменная в которую кладется скачиваемый файл
Пременная count -это переменная счетчик, в книгах которые мы скачиваем в может быть больше одной части и соответственно книга может быть разбита на несколько файлов.
Переменная directoryname — это переменная, в которую впоследствии складывается аудиокнига.
Переменная text — это переменная, в которой будет лежать аннотация книги в текстовом файле.
Переменная— filename — это название книги и ее автора на русском языке.
Переменная startlink — это переменная, с которой собственно стартует шаблон, эта переменная берется из списка.
Переменная bookbuy- это переменная проверки на содержание платного контента на странице, потому что на этом сайте не все книги бесплатные.
128691



3.Логика действий шаблона
Так как шаблон выполнен на GET-запросах, в настройках проекта изначально включена :галочка «Не использовать браузер»
128688


Пройдемся по кубикам шаблона:
Кубик «Получить строку» содержит список input, в которые попадают ссылки на скачивание из файла, который находится в директории проекта, который называется Donor.txt.
128686

Соответствующий список будет находиться в списках шаблона. Данные из списка Input попадают в переменную StartLink.
Паузы в проекте несут технический характер и с ними можно экспериментировать, удалять их или наоборот увеличивать в зависимости от необходимости. Далее мы переходим на гет-запрос.
GET-запрос мы можем собрать с помощью фидлера, либо информацию о запросе получить непосредственно в Зеннопостере вот в таком виде она представлена
128687

.
Додополнительные вкладки в кубике запроса не используются, proxy тоже, далее после того как мы как спарсили запросом содержимое страницы, мы делаем проверку регулярным выражением на платный контент, соответственно составив определенную регулярку с помощью тестера регулярных выражений.
128689


Если мы возьмем это регулярное выражение, поставим в тестер, а содержимое страницы скопируем и загрузим, мы можем проверить наличие или отсутствие информации, удовлетворяющей тексту данного регулярного выражения.
128690


В данном случае мы парсили со страницы, на которой нет платного контента, таким образом, следующим действием мы переходим на логический оператор, который проверяет наличие текста:"Слушать полностью"
128675

Если такой текст отсутствует, то шаблон идёт дальше работать по кубикам. Если такой текст присутствует, то мы получаем оповещение влог о наличии платного контента и завершаем шаблон переходя на скачивание следующей страницы.
128692


Если следующей страницы нет, то шаблон отрабатывает оповещение кончились доноры для скачивания и заканчивает работу..Дальше пройдемся по регулярным выражением, которые помогут нам собрать информацию со страницы.
В первой регулярке мы парсим имя директории для загрузки. Регулярное выражение включает в себя название книги на английском языке.
128676

Впоследствии по этому регулярному выражению будет создана директория загрузки. В данном случае это directoryname героя невидимого фронта. После этого мы парсим со страницы все ссылки на скачивание, опять же создав регулярное выражение с с помощью тестера регулярных выражений.
128677

Мы парсим все ссылки и кладем в переменную линк, из которой ссылки впоследствии будут браться в цикл, если их больше одной, и удаляться. Дальше мы парсим текст аннотации книги, то есть шаблон подразумевает, что в каждой директории с mp3 файлом.будет лежать информация о книге, чтобы можно было ее прочитать и принять решение слушать ее или нет.
128678


Продолжаем. После парсинга аннотации книги Мы берем регуляркой название книги и автора на русском языке и кладем в переменную filename.
После этого ее содержимое станет именем файла, в котором содержится аннотация.
128681

Затем мы получаем количество ссылок для скачивания и кладем в переменную count, для того чтобы позднее инициировать счетчик.
128682

После этого создаём поддиректорию проекта с именем из переменной directoryname в которую будет скачана аудиокнига.
Далее мы получаем строку для загрузки файла и кладём её в переменную link.
128683

Регулярным выражением мы убираем бэкслэши, так как изначально строка содержит в своём тексте ряд бэкслэшей, которые препятствуют скачиванию. Поэтому, с помощью регулярного выражения, точнее, с помощью функции замена, мы убираем бэкслэши по всему тексту строки и кладём обратно в link
128674


Дальше, происходит скачивание с помощью get-запроса. Хочу обратить внимание, что-необходимо будет выбрать во вкладке опцию грузить как файл и кладем полученное в переменную result
128673


и переходим по счетчику, счетчик отрабатывает по условию и далее после того как все файлы сохранились и счетчик отрабатывает по своему финальному повторению мы переходим к сохранению аннотации к файлу.
Потом нам необходимо будет очистить текст от ряда технической информации, которая в него попадает.
Для этого мы меняем наиболее повторяющиеся в тексте технические символы на пустые. Таким образом текст приобретает очищенный вид от лишних символов..
128672


После этого мы записываем текст в файл, используя для этого директорию проекта и в качестве поддиректории, используя то название книги, которая мы скачали ранее, то бишь переменную директорию name.
128671


Соответственно названием файла будет тот текст на русском, который лег в переменную файл name.
После чего выводим в лог оповещение о успешном скачивании книги.
128669


Далее проект отрабатывает обратно в переменную -получить строку.Если строка в переменной есть, цикл повторяется. Если строка отсутствует, то проект закрывается, выдавая сообщение оповещением-окончились доноры для скачивания. В финальном виде готовые файлы выглядят так.
128668


На примере скачивания трех книг мы получаем отдельные директории с названием книги, которая содержит в себе набор скачанных файлов, текстовый файл с названием книги и автором, содержащий аннотацию и хорошее настроение от прослушивания.
Видео-обзор шаблона можно посмотреть по ссылке
Zennovuhe

4.Вместо послесловия
Благодарю читателей за то что осилили мой опус,извините за ошибки и помарки так как я редачил его с планшета в околоспартанских условиях, а команде Зеннолаба спасибо за возможность участия и достойный продукт.Надеюсь мой шаблон поможет сэкономить ваше время и принесёт пользу,всем стопроцентного зрения!!!

 

Вложения

  • Vmake-1733685820.jpg
    Vmake-1733685820.jpg
    1 MB · Просмотры: 93
  • Screenshot_20241209-201125.png
    Screenshot_20241209-201125.png
    348,5 KB · Просмотры: 93
  • knigavuhe.zp
    knigavuhe.zp
    30,8 KB · Просмотры: 113
  • KNIGA_V_UHE.rar
    KNIGA_V_UHE.rar
    29,5 KB · Просмотры: 85
Последнее редактирование модератором:
думал что то будет сверх естественное))) ни куков ни токенов ни каких нет.
 

Вложения

  • Спасибо
Реакции: Ingvar
думал что то будет сверх естественное))) ни куков ни токенов ни каких нет.
С удовольствием посмотрю Ваш вариант как вернусь в цивилизацию ,мой отрабатывает без Кук и без токена авторизации.но всегда можно улучшить,
 
думал что то будет сверх естественное))) ни куков ни токенов ни каких нет.
Задача шаблона получить книгу, если он с ней справляется без кук и токенов это больше плюс чем минус.
 
  • Спасибо
Реакции: Ingvar
Здравствуйте.
Есть возможность понизить версию? хотя бы до 7.7.10?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)