python fill_games_table.py

Публикую свой небольшой прорыв. Я подписан на сервис, где каждый месяц можно выбрать две игры из премиум- и непремиум-сегмента. Сегменты эти — полная шутка. У сервиса нет нормальных фильтров, которые позволяли бы убирать из выдачи всякий шлак типа «3 в ряд» и дешевейших поделок на Unity. С ними же могут соседствовать игры вроде Tekken 7, Pathfinder, Little Nightmares, Alan Wake. Селекция у сервиса вообще непонятная, а желания проверять каждую игру у меня нет. И вот мне пришлось пойти на крайние меры, чтобы решить эту проблему и упростить себе жизнь. Я решил сам скрафтить нужные мне фильтры. Эта история о том, как я сумел преодолеть страх перед программированием и автоматизировал выбор игр.

python fill_games_table.py

Первые шаги

Сначала я использовал браузерный плагин Instant Data Scraper, который дал собрать с сайта xlsx-таблицу ВСЕХ игр. В этом месяце их невиданное прежде количество — 1400+ тайтлов. Затем я вручную подредактировал таблицу, оставив только игры с ключами от Steam и убрав мусорный текст. Дальше я выгрузил таблицу напрямую в ChatGPT в надежде, что он сам сможет дополнить мою таблицу колонками со средними оценками, ценами в долларах и ссылками на страницы в магазине Steam. Но с таким объемом запросов нейронка не справлялась. Вероятно, сказывалось ограничение на количество запросов. Или просто слабы пока лапки у ботов. Тогда он предложил мне написать код на Python, который я бы сам запускал. Тут я сказал твердое нет. Удалил таблицу, выключил комп. Через пару часов вернулся и принялся за дело.

Путь

Я скачал Python и все прилагающиеся к нему чертовы приблуды. GPT стал выдавать итерации кода, которые я вставлял в заветный файл. Результатом его работы должна была стать таблица с полностью заполненными колонками со всей нужной инфой. Спустя десятки зависаний нового и нового скрипта мне пришла в голову мысль, что нужно раздобыть API SteamDB. Погуглив и узнав, что у SteamDB нет собственного API, я ударил себя ладонью по лицу, потому что нахрена мне их API, если нужно узреть в корень и заполучить API самого Steam. И я пошел зарегался в качестве разработчика, получил ключ, потом GPT воткнул его в код. Дальше он предложил мне вручную искать appid'ы для каждой из 1400+ игр... После краткой встряски был написан тестовый скрипт, который находит всю инфу для первых 3 игр в списке. Потом я захотел видеть в таблице стоимость не в долларах, а в тенге. Попробовал и перехотел. Потом ChatGPT порекомендовал мне перейти с Блокнота на Visual Studio Code. Да, всю эту комплексную задачу я делал через сраный Блокнот. Наконец, тестовый скрипт успешно сработал, и настало время парсить ВСЕ игры разом. Бот добавил отладочную информацию, что бы это ни значило, и мы поехали к финишной. Пока не уткнулись в задержку между запросами, которая предотвращала возможные блокировки. С ней скрипт выполнялся бы вечность, а я хотел мгновенно. Значит получу сейчас. Диктую убрать тормоза и воткнуть многопоточность. Файл успешно обработан и сохранен. Квест выполнен.

python fill_games_table.py
python fill_games_table.py

Что дальше?

Фиг знает, теперь я думаю, как еще можно использовать этот скрипт. Других прикладных идей пока нет. Может, я рожу свой сервис. Если у кого-то из вас есть идеи или вам интересно увидеть результаты, пишите! Этот пост в первую очередь для меня самого, но если кому-то он окажется полезным или интересным, буду только рад.🫰

33
Начать дискуссию