Одержимость парсингом + ChatGPT = Бот с аудикнигами
Расскажу как я решил спарсить кучу сайтов и торентов с аудиокнигами, и сделать наконец удобный телеграм бот с аудиокнигами t.me/knigarnya_bot
Что я имел на старте:
1 год самообучения Python
1 год опыта разработки простых телеграм ботов
Много экспериментов с ChatGPT
Эксперименты с MongoDB для удобного хранения сложных структур данных
Сильное желание что-то запилить
Я фанат аудиокниг и давно ищу идеальный плеер с книгами
В интернете в открытом доступе достаточно много ресурсов, где можно слушать аудиокниги, но практически везде это ужасно неудобно. Обычно это или древний сайт, или озвучка не продолжается после окончания главы, или ничего не проигрывается при выключении экрана телефона, или мало книг.
В идеале бы конечно хотелось, чтобы ты мог просто зайти в Я.Музыку и послушать любую аудиокнигу. Оказывается так нельзя. Часто даже на официальных ресурсах нельзя купить то, что уже было кем-то озвучено.
Пришла следующая идея - поискать боты/каналы в телеграме. Хороших нет
Я изучил десятки ботов. Почти все что я нашел имело ряд существенных недостатков: или неудобно слушать, или нельзя самому искать книги, или мало книг.
В каналах слушать тоже неудобно - ты не можешь сам выбирать, что послушать. Также бесит, что нужно подписываться на спамерские каналы.
А что если самому попробовать парсинг книг?
Я подумал, может просто сделать простой скрипт, который парсит один известный сайт и скачивает мне аудиофайлы. А я их слушаю с телефона.
У меня есть доступ к ChatGPT. Я подумал, что если он за полчаса сможет объяснить мне как парсить сайты и сделает простой парсер, то можно работать.
Приступил к диалогу с нейросеткой.
ЧатЖПТ попросил у меня html-текст странички сайта. Я ему дал текст на вход, и через минуту у меня был готовый парсер, который мог скачивать кучу интересных данных про книги. Еще через полчаса я умел получать ссылки на аудиофайлы и скачивать их.
Ну и в общем парсинг работал, он качал книги! Я был очень доволен!
Но понял, что такой способ все еще неудобен - не хочется постоянно руками запускать скрипт, думать где хранить файлы, потом искать среди них нужные, и тп.
Python скрипт это хорошо, но Телеграм Бот лучше
Я решил, попробовать использовать внутренний плеер телеграма, чтобы слушать было еще удобнее.
У меня уже есть опыт разработки ботов
Есть доступ к ChatGPT
Телеграм-бот умеет посылать файлы до 50МБ, что вообще для 95% глав достаточно
Я попросил нейросетку еще научить мой скрипт искать нужные книги, закачивать их в телеграм бота, обрабатывать сложные случаи и ошибки.
Нейросетка со всем справлялась на ура! Бот заработал и присылал мне нужные главы в том порядке, в каком я хотел.
Чтобы было доступно реально много книг, я решил парсить несколько сайтов - уже пригодился Selenium и Pyppeteer для асинхронного парсинга
Некоторые сайты сложно парсить - там нужно имитировать человека.
Для этого подошел селениум. ЧатЖПТ снова рассказал подробно как это делается - и это был отдельный кайф видеть, что программа ведет себя как человек на сайте.
Pyppeteer же это еще более крутая библиотека, она может делать много разных действий асинхронно (=почти параллельно)
Если сначала в боте было доступно около 40000 книг, то сейчас уже более 120 тыс.
Кстати, для интерсующихся волшебная штука: https://github.com/ultrafunkamsterdam/undetected-chromedriver
В общем так я сделал бота и открыл его в паблик
Его можно использовать абсолютно бесплатно и слушать минимум 3 новые книги в месяц. Я посчитал, что этого более чем достаточно для среднего пользователя.
Буду рад отзывам на бота t.me/knigarnya_bot

















