- Регистрация
- 28.11.2019
- Сообщения
- 34
- Благодарностей
- 23
- Баллы
- 8
0.Вместо введения
Дисклеймер:Все совпадения случайны,скачанные в прикреплённом видео произведения не отрражают вкусовые предпочтения автора за исключением маниакальной любви к хорошему печатному слову а шаблон предоставлен исключительно в познавательных целях.автор не такое унылое г а просто записывал видео из закрепа в 4утра).
Дорогие форумчане,
мое участие в конкурсе это проба пера чтобы почувствовать формат так-сказать и желание поделиться с сообществом чем-то полезным в ответ на тот объем знаний который оно даёт.Пропущу с вашего позволения историю ставшую тут былинной о том как Зенка лежала у меня на печи тридцать лет и три года и потом воспряла на подвиги богатырские,собственно так оно и было.
С возрастом и увеличением очковых диоптрий я стал очень избирателен к тому на что потратить оставшийся глазной ресурс и в мою жизнь плотно вошли аудиокниги.Разумно рассудив что глаза Гомера не так часто сочетаются с ушами Бетховена я начал яростно эксплуатировать ушной ресурс потребляя печатное слово в звуке,после недолгих усилий нашел для себя сайт "книга в ухе" удовлетворяющий потребности в контенте онлайн.Но как обычно не бывает без но.По роду деятельности путешествуя по необъятной -автомобилем,поездом самолётом,столкнулся с тем что мобильный интернет зачастую очень дискретная штука что сказывается на качестве прослушивания и крадёт очарование повествования,плюс есть грех- я рыболов и оч приятно в глуши посидеть с удой под хорошую книжечку и апперетив, ну а там-то уж без связи.Поэтому Зенка и в ухе и в ухЕ так сказать и было решено книги качать.Для чего написан шаблон который меня выручает ,его я и представляю.
1.Функционал шаблона
Этот шаблон выполнен на основе GET-запросов и позволяет скачивать последовательно любое количество аудиокниг, ссылки на которые вы поместите в файл donor txt , с сайта: https://knigavuhe.org Скачанные книги будут размещены в директориях с английским названием и снабжены файлом с кратким содержанием произведения.
2.Список переменных
Сам шаблон состоит из следующих переменных:
Переменная get, это переменная в которую парсится содержимое страницы,
Переменная link-переменная в которую кладется ссылка на скачивание.
Переменная result - это Переменная в которую кладется скачиваемый файл
Пременная count -это переменная счетчик, в книгах которые мы скачиваем в может быть больше одной части и соответственно книга может быть разбита на несколько файлов.
Переменная directoryname — это переменная, в которую впоследствии складывается аудиокнига.
Переменная text — это переменная, в которой будет лежать аннотация книги в текстовом файле.
Переменная— filename — это название книги и ее автора на русском языке.
Переменная startlink — это переменная, с которой собственно стартует шаблон, эта переменная берется из списка.
Переменная bookbuy- это переменная проверки на содержание платного контента на странице, потому что на этом сайте не все книги бесплатные.
3.Логика действий шаблона
Так как шаблон выполнен на GET-запросах, в настройках проекта изначально включена :галочка «Не использовать браузер»
Пройдемся по кубикам шаблона:
Кубик «Получить строку» содержит список input, в которые попадают ссылки на скачивание из файла, который находится в директории проекта, который называется Donor.txt.
Соответствующий список будет находиться в списках шаблона. Данные из списка Input попадают в переменную StartLink.
Паузы в проекте несут технический характер и с ними можно экспериментировать, удалять их или наоборот увеличивать в зависимости от необходимости. Далее мы переходим на гет-запрос.
GET-запрос мы можем собрать с помощью фидлера, либо информацию о запросе получить непосредственно в Зеннопостере вот в таком виде она представлена
.
Додополнительные вкладки в кубике запроса не используются, proxy тоже, далее после того как мы как спарсили запросом содержимое страницы, мы делаем проверку регулярным выражением на платный контент, соответственно составив определенную регулярку с помощью тестера регулярных выражений.
Если мы возьмем это регулярное выражение, поставим в тестер, а содержимое страницы скопируем и загрузим, мы можем проверить наличие или отсутствие информации, удовлетворяющей тексту данного регулярного выражения.
В данном случае мы парсили со страницы, на которой нет платного контента, таким образом, следующим действием мы переходим на логический оператор, который проверяет наличие текста:"Слушать полностью"
Если такой текст отсутствует, то шаблон идёт дальше работать по кубикам. Если такой текст присутствует, то мы получаем оповещение влог о наличии платного контента и завершаем шаблон переходя на скачивание следующей страницы.
Если следующей страницы нет, то шаблон отрабатывает оповещение кончились доноры для скачивания и заканчивает работу..Дальше пройдемся по регулярным выражением, которые помогут нам собрать информацию со страницы.
В первой регулярке мы парсим имя директории для загрузки. Регулярное выражение включает в себя название книги на английском языке.
Впоследствии по этому регулярному выражению будет создана директория загрузки. В данном случае это directoryname героя невидимого фронта. После этого мы парсим со страницы все ссылки на скачивание, опять же создав регулярное выражение с с помощью тестера регулярных выражений.
Мы парсим все ссылки и кладем в переменную линк, из которой ссылки впоследствии будут браться в цикл, если их больше одной, и удаляться. Дальше мы парсим текст аннотации книги, то есть шаблон подразумевает, что в каждой директории с mp3 файлом.будет лежать информация о книге, чтобы можно было ее прочитать и принять решение слушать ее или нет.
Продолжаем. После парсинга аннотации книги Мы берем регуляркой название книги и автора на русском языке и кладем в переменную filename.
После этого ее содержимое станет именем файла, в котором содержится аннотация.
Затем мы получаем количество ссылок для скачивания и кладем в переменную count, для того чтобы позднее инициировать счетчик.
После этого создаём поддиректорию проекта с именем из переменной directoryname в которую будет скачана аудиокнига.
Далее мы получаем строку для загрузки файла и кладём её в переменную link.
Регулярным выражением мы убираем бэкслэши, так как изначально строка содержит в своём тексте ряд бэкслэшей, которые препятствуют скачиванию. Поэтому, с помощью регулярного выражения, точнее, с помощью функции замена, мы убираем бэкслэши по всему тексту строки и кладём обратно в link
Дальше, происходит скачивание с помощью get-запроса. Хочу обратить внимание, что-необходимо будет выбрать во вкладке опцию грузить как файл и кладем полученное в переменную result
и переходим по счетчику, счетчик отрабатывает по условию и далее после того как все файлы сохранились и счетчик отрабатывает по своему финальному повторению мы переходим к сохранению аннотации к файлу.
Потом нам необходимо будет очистить текст от ряда технической информации, которая в него попадает.
Для этого мы меняем наиболее повторяющиеся в тексте технические символы на пустые. Таким образом текст приобретает очищенный вид от лишних символов..
После этого мы записываем текст в файл, используя для этого директорию проекта и в качестве поддиректории, используя то название книги, которая мы скачали ранее, то бишь переменную директорию name.
Соответственно названием файла будет тот текст на русском, который лег в переменную файл name.
После чего выводим в лог оповещение о успешном скачивании книги.
Далее проект отрабатывает обратно в переменную -получить строку.Если строка в переменной есть, цикл повторяется. Если строка отсутствует, то проект закрывается, выдавая сообщение оповещением-окончились доноры для скачивания. В финальном виде готовые файлы выглядят так.
На примере скачивания трех книг мы получаем отдельные директории с названием книги, которая содержит в себе набор скачанных файлов, текстовый файл с названием книги и автором, содержащий аннотацию и хорошее настроение от прослушивания.
Видео-обзор шаблона можно посмотреть по ссылке
Zennovuhe
4.Вместо послесловия
Благодарю читателей за то что осилили мой опус,извините за ошибки и помарки так как я редачил его с планшета в околоспартанских условиях, а команде Зеннолаба спасибо за возможность участия и достойный продукт.Надеюсь мой шаблон поможет сэкономить ваше время и принесёт пользу,всем стопроцентного зрения!!!
Вложения
-
1 МБ Просмотры: 4
-
348,5 КБ Просмотры: 5
-
30,8 КБ Просмотры: 10
-
29,5 КБ Просмотры: 9