CheapTravel: новый способ путешествовать с Flixbus
Table Of Content
CheapTravel - это приложение, которое я разработал в 2017 году, чтобы найти возможные поездки, которые я мог бы сделать с FlixBus, начиная от двух ближайших к моему дому станций, Чезена и Римини.
Если вы используете сайт FlixBus, вы можете найти поездки только в одну сторону: вы выбираете два города и дату, и сайт показывает вам все доступные поездки с этими ограничениями. Единственное, что вы можете сделать, это проверить все маршруты, начинающиеся от города.
Эти функции достаточны, если вам нужно перемещаться из одного города в другой, но не подходят, если вы хотите получить вдохновение. На этом сайте Flixbus не работает очень хорошо: он не предлагает никаких услуг для поиска интересных поездок, которые вы можете совершить.
Например: если у меня есть свободный день, куда я могу поехать? Что ж, Flixbus в этом не помогает.
С помощью CheapTravel предлагается такая услуга: вы выбираете город, с которого хотите начать, и дату, когда хотите уехать, и система покажет вам все автобусы, которые отправляются из этого города в этот день. Для каждого автобуса будет указана цена, время отправления и время пути. Очень удобно!
Ниже приведен пример:
Как вы можете видеть на приведенном выше изображении, я использовал Telegram в качестве интерфейса. Я часто использовал его для таких целей, и я думаю, что это действительно хорошее решение, если у вас нет много ресурсов и времени.
Как это работает?
Парсинг - вот ответ.
Во-первых, я извлек список городов (коды и названия) и их связь с помощью страницы карты (как показано выше). Все коды были там, внутри HTML.
Во-вторых, когда вы выбираете город отправления, выполняются некоторые HTTP-запросы. Нет необходимости делать POST, достаточно GET. Все необходимые данные, такие как город отправления, город прибытия и дата, могут быть легко помещены в URL. Для каждого города, связанного с городом отправления, выполняется HTTP-запрос, который позволяет мне получить автобусы, которые покрывают этот маршрут в определенную дату.
Затем каждый HTTP-запрос анализируется для извлечения из них всех необходимых данных, которые отправляются пользователю через Telegram.
Заметки
Это приложение довольно старое, как я уже сказал, оно было разработано в 2017 году. Код в настоящее время больше не работает по разным причинам.
Прежде всего, я думаю, что формат URL веб-страниц изменился. Во-вторых, код не полностью завершен. Я больше не могу найти полный код, потому что тогда я не использовал GitHub. Я также разработал это приложение на Python, что позволяет мне создавать более простой код, чем этот, который написан на Java. Я потерял его тоже.
Код
Вы можете найти код здесь.
Кто я?
Привет, приятно познакомиться!
Меня зовут Алессандро Ломбардини, я любитель искусственного интеллекта, который очень любит писать в свободное время, особенно о машинном обучении. Если вы хотите узнать больше обо мне, посетите мой блог, я там размещаю все, что я делаю, включая статьи, которые я написал на Medium.
Вы также можете найти меня на GitHub и Linkedin. Не стесняйтесь связаться со мной, мне будет приятно пообщаться с вами.