Найти тему
Gornak40

CreepyPasta в консоли оффлайн

Привет, Дзен!

На днях решил набросать простенькое консольное приложение для чтения крипипасты на питончике. Чем мне не угодил крутой русскоязычный сайт спросите вы? Ведь там крутое оформление, фото-видео, большое сообщество! Причина проста: я сейчас на даче, где ужасно нестабильный интернет, поэтому захотелось вытащить с этого сайта все истории для чтения без сети.

Идея №1: просто скачать сайт целиком, например через wget. Рекурсивно пробежавшись по ссылкам, я очумел от того, сколько это добро весит. В условиях моего интернета качать несколько гигабайт - самоубийство.

Идея №2: достать ссылки на все страницы с историями, скачать их и написать какой-нибудь viewer на PyQT. Немного подумав и поэкспериментировав, я понял, что выглядеть это будет жутко убого.

Идея №3: наплодить кучу txt файлов с историями, хорошенько попарсив сайт и написать для них простенький консольный плеер. На этом я и остановился. Сначала вытащил ссылки на все истории (их чуть больше 1000), потом повозился с bs4 и написал парсер. Скачивалось все это порядка 20 минут, зато суммарный размер всех историй получился около 12 МБ. Консольный ui писал с использованием няшного prompt_toolkit, благо документация у этой штуки хороша.

Результат работы можете посмотреть здесь. Там же подробная инструкция по установке и использованию. Работает пока только в Linux, вскоре замучу версию для винды.

Поисковик на prompt_toolkit
Поисковик на prompt_toolkit
В процессе чтения
В процессе чтения

Спасибо за внимание, надеюсь, эта статья была вам полезна)