Вова делает стартап

FlyBack: Как я автоматизирую процесс заказа брони🌡

🌡 Начиная с этого поста я ввожу иконку “высокого градуса гиковости” - посты, помеченный такой эмоджи, будут иметь технический контент, интересный только самым хадкорным читателям.

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

Как мы уже поняли, главная задача проекта - автоматизировать процесс оформления брони на сайте авиакомпании и дать более простой интерфейс для оформления заказа для моих клиентов.

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

Поэтому пришлось выбрать другой вариант - сделать всё через Selenium, когда мы автоматизируем клики по сайту в браузере. Я, кстати, до этого момента так ни разу толком его и не использовал, и вот настала пора. Оказалось, что у этого подхода есть куча своих нюансов:
- периодически какие-то кнопки могут не нажиматься, потому что другие элементы их перекрывают;
- браузеры детектят, что ты бот, а не реальный пользователь;
- браузер периодически крешится, нужно скрупулёзно выбирать правильную комбинацию версии браузера, драйвера, браузерных настроек и инфраструктуры, на котором это все будет запускаться;
- весь процесс идет долго, потому что нужно ждать, пока браузер отрендерит все.

Но есть и плюсы: не нужно разбираться с API запросами, просто прокликиваешь из кода все, что нужно, и оно работает… до тех пор, пока разработчики сайта не поменяют название какого-нибудь элемента 🙂

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

В результате оплаты мы получаем бронь, далее щепотка магии и она оказывается у пользователя. Как именно? 🙂 Об этом в следующий раз.
FlyBack Разработка
Made on
Tilda