ищу билеты как программист ✈️

недавно нужно было купить билеты на самолет, второй раз в жизни… и хоть алгоримт очевидный: завести таблицу с датами прилёта/вылета, ценами, временем в пути, перебрать все варианты и выбрать оптимальный. но, стоило начать этим заниматься вручную, сразу появилась куча вопросов: как лучше оформить таблицу, учесть длительность пересадок, общее время в пункте назначения, сохранить всё это для анализа и т.д. В итоге я понял, что не хочу заниматься ручным перебором, и легче было бы скачать всю информацию и затем анализировать

как самый настоящий лентяй программист, я написал скрипт через Puppeteer (автоматизатор браузера) но быстро уперся в стену – SkyScanner (инструмен для поиска самолетов) flagged меня как бота. попробовал разобрать их API – но тоже не вышло

в итоге решил использовать middle man proxy и вручную открывать каждую комбинацию дат, чтобы перехватить все эти данные. так у меня собралось порядка 40 тысяч маршрутов на апрель и май (уж точно руками не перебрал бы 🙄)

далее я вычислил ключевые метрики: общее время в пункте назначения, цену, дату вылета, продолжительность перелётов. затем написал cost function, отсортировал результаты и выбрал топ-20.

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

не знаю почему нет такого сервиса который занимается этим перебором — возможно, это слишком большая нагрузка на агрегаторы вроде SkyScanner. а может, я просто не в курсе таких решений.

как вы ищите свои билеты? честно интересно узнать

визуализация той самой cost function которую я использовал – она максимизирует время там, минимизирует цену и длительность пути