avatar
1 год назад

Краткий пост о том как дед в выходные расслаблялся

Думал, что приедет материнка 20 числа и я смогу устанавливать все линуксы и игрушки, но увы, доставку перенесли на 22 число.

***

Это не инструкция и не гайд. 

Собственно, делать было нечего, я вспомнил про старый и никому уже не нужный планшет. 

Ipad Mini A1432
Ipad Mini A1432

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

Так зачем же он вдруг мне понадобился?

Я захотел почитать мангу, но грузить какие-либо сайты на нём было больно.

Чтобы чуток облегчить его страдания я прикинул, что нужно сделать "скачивалку" манги и маленький "сервер" для того, чтобы отдавать html странички с этой самой мангой.

***

С одного сайта (не будем называть какого) можно скачивать мангу простым кликом по кнопке загрузки. Но желательно было бы найти все ссылки на главы, а внутри самих глав ссылки на изображения.

Что я попробовал? Python + requests и к сожалению скачивать на прямую по "выпаршенным ссылкам" не получилось из-за cloudflare. По этому пришлось открывать страницу и тыкать на кнопку загрузок через selenium.

В итоге получилось python + selenium для загрузки самих глав.

***

Поразмыслив, что по мимо загруженных zip`ов нам бы ещё инфу о них, хоть какую-то, не имена файлов же парсить. И...в API полезная информация присутствует! Так что сохраняем данные.

Все необходимые имена, названия глав. Чтобы в конечном итоге заполнить бд.
Все необходимые имена, названия глав. Чтобы в конечном итоге заполнить бд.

Как только "скачивалка" и "сборщик информации" были готовы, то вполне себе можно было начинать делать HTML страницы и "сервер", если его так можно обозвать. 

В качестве инструментов:

python + fastapi + jinja2 + pydantic + sqlalchemy

Как это работает. Переходим на "главную страницу сервера" и получаем:

А если ткнуть на мангу попадаем к списку глав:

Ну и собственно само чтение манги:

Планшет вполне себе нормально грузит вот такой HMTL файл заполненный через jijna2.

***

Исходники не вижу смысла выкладывать т.к кому эта хрень нужна то?

11комментариев