CoderCastrov logo
CoderCastrov
Путешествия

Кодирование пути к рабоче-путешественническому балансу

Кодирование пути к рабоче-путешественническому балансу
просмотров
4 мин чтение
#Путешествия
Table Of Content

    Меня зовут Омер, я full stack разработчик и люблю путешествовать за границу спонтанно. Это история о том, как я оказался покидая офис, чтобы успеть на рейс в Гонконг за $299.

    Мой день начался как любой другой рабочий день. Я выпил свой кофе, поздоровался с коллегами и вошел в программную тоннель. Внезапно, на мой телефон пришло множество уведомлений. Тель-Авив - Гонконг за $299. Следующее, что я помню, это то, что я находился на рейсе в Гонконг длительностью XX часов. Как я оказался на рейсе в Гонконг в середине рабочего дня?

    Все началось несколько недель назад. Я изучал способы нахождения дешевых авиабилетов. Я пытался выяснить лучшее время для поиска, лучший способ поиска и хаки для нахождения этих дешевых авиабилетов. Некоторые статьи говорили, что нахождение билетов заранее делает их дешевле, а другие говорили, что последние минутные рейсы - это лучшее. Другие предложили мне зайти на сайты авиакомпаний в режиме инкогнито или через VPN. Таким образом, я не увижу изменения цены каждый раз при поиске. Кроме того, я являюсь участником некоторых секретных телеграмм-групп и групп в Facebook, где я получаю уведомления о супердешевых авиабилетах. Я также получил доступ к боту, который может искать авиабилеты для меня и уведомлять меня, когда он видит снижение цены.

    Но, будучи чрезвычайно амбициозным и любознательным разработчиком программного обеспечения, я решил, что, вероятно, смогу создать свое собственное решение лучше. Так что я создал фиктивный парсер. Я уже создавал такие парсеры раньше. Всего несколько месяцев назад я создал бесплатный поиск мебели, чтобы обставить свою новую квартиру. Он парсил известные группы Facebook, где раздают бесплатные вещи, и каждый раз, когда он находил новый пост, отправлял его мне в телеграм. Таким образом, я всегда был первым, кто об этом узнавал. Через некоторое время Марк Цукерберг понял, что я делаю, и ему это не понравилось. Я люблю Facebook, поэтому я не хотел быть заблокированным - поэтому, к сожалению, пришлось закрыть свой парсер.

    Теперь, имея некоторый опыт, я начал изучать некоторые веб-сайты и проверять их на возможность парсинга. Я проверил популярные сайты, такие как Skyscanner, Kayak, mondo, Kiwi и Expedia, с некоторыми конкретными требованиями:

    К сожалению, я не нашел ни одного. Оказалось, что все "хорошие" сайты имеют довольно надежную защиту от парсинга. Они не используют API. И, к сожалению, кнопки там нельзя обрабатывать программно. Так что через некоторое время я начал терять надежду. Но, прежде чем я сдался, мне нужно было проверить еще один сайт, который, скажем так, менее продвинут. Я предположил, что там, вероятно, есть API. И угадайте, что? Я нашел его!

    Я нашел удобный API, который давал мне всю текущую информацию о рейсах (список из 30-35 рейсов) и каждый вызов. Он также давал мне информацию о цене. Каждый рейс имел свой идентификатор, поэтому я знал, если произошло снижение цены. Эти данные были подходящими для бота. Итак, я написал его...

    Сначала я подумал, как я могу получать уведомления о хороших рейсах, не получая спама с плохими рейсами. Мое решение заключалось в парсинге этих данных в течение некоторого времени и помещении их в таблицу SQLite только для визуализации. Я сразу же заметил, что происходят серьезные снижения цен в день рейса. Допустим, рейс в Бангкок начинается с $700. Иногда цена падала до $420. Я видел, что это повторяется в любой другой стране.

    Я отметил все снижения цен и обнаружил, что снижение цены происходит систематически. Я определил бота, чтобы он уведомлял меня, когда видит снижение цены более чем на $200 от исходной цены. Я также настроил его на уведомление о каждом рейсе, стоимость которого составляет менее $100, исключая рейсы, которые часто стоят менее $100 (например, рейсы на Кипр или в Милан). Так что каждое воскресенье в течение 3 недель я получал одно и то же уведомление $299 в Гонконг. Тот же самый рейс, который начался с $600, снизился до $300 3 воскресенья подряд...

    Я успешно взломал систему. После наблюдения за этим паттерном я начал готовить свои вещи. Чтобы получить рейс за $299, мне нужно было быть готовым к рейсу только за 10 часов до вылета.

    К счастью для меня, я работаю в удивительно гибкой компании, cnvrg.io. Я сказал своему боссу, что если цена снова упадет, я полечу. Мой босс не только согласилась, она даже позволила мне работать из Гонконга на протяжении всей недели, чтобы взять как можно меньше выходных.

    Итак, вот я в офисе в воскресный вечер. Я с нетерпением жду уведомлений, но не хочу слишком сильно надеяться. У меня уже собраны сумки дома, и у меня временное разрешение от босса. К 11 часам я увидел, что цены начали падать. Сначала это было $390. К 13:00 она упала до $350, затем до $329. И вот, к 14:00 цена достигла $299!!! Через 5 минут после получения уведомления я пошел в кабинет своего босса и показал ей рейс. И просто так, я получил подтверждение, собрал свои вещи и сел на рейс. Следующую неделю я провел в Гонконге, работая и наслаждаясь потрясающим временем для путешествий на выходных.

    Теперь я знаю, насколько маловероятно, что у обычного разработчика программного обеспечения будет такая свобода и гибкость в работе. За это я БЕЗУМНО благодарен cnvrg.io. Они разделяют со мной страсть к технологиям и разработке. Часть того, что они видят во мне, - это моя страсть к разработке программного обеспечения. Именно она питает мою работу и позволяет мне взламывать систему, чтобы делать то, что я хочу. Компания, которая действительно ценит эту страсть к работе и вознаграждает ее, - это действительно невероятно. Это заставляет меня с нетерпением ждать каждый день прихода на работу и решения проблем.