Как я устал искать ЖД билеты в Крым и обратно и в итоге написал бота

Всем привет! Хочу поделиться нашим ботом, которого мы написали изначально для себя и своей команды, но решили в итоге поделиться.

Я проживаю в Крыму и мне довольно часто приходится ездить по работе в Москву и с закрытием полетов это стало сущей проблемой. Билетов на поезд нет от слова совсем, запланировать поездку практически не получается. Изначально я пробовал постоянно мониторить сайт с билетами, но после 30 минут этих действий я задолбался и стал думать как это можно решить другим путем.

Поискал готовые решения в интернете, наткнулся на парочку мертвых ботов.

Которые выдавали примерно следующее, а часть вообще молчала и ничего не делала.

жаль не написал дату RIP
жаль не написал дату RIP

Было решено написать своего бота, не опускать же руки.

После недолгих поисков обнаружилось самописное API от стороннего разработчика и наш программист ушел его выкуривать на несколько дней. К сожалению РЖД довольно хорошо контролирует кол-во запросов с одного адреса и мы периодически улетали в бан по мере тестирования.

Спасибо автору, он помог разобраться во многих вопросах.
Спасибо автору, он помог разобраться во многих вопросах.

И вот спустя неделю была написана первая версия, которая просто искала любое свободное место на нужную дату. Кстати я на радостях купил себе билет, правда было только верхнее место, но меня это не волновало я быстро его выкупил. Поиск в итоге длился около трех часов.

О чудо! Три часа и билет был найден!
О чудо! Три часа и билет был найден!

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

Эта задачка была уже посложнее, так как API такой информацией не владеет по данному направлению следования и выдать ее не может. Было решено парсить страницу сайта и вытаскивать из нее нужную нам информацию. На это еще ушла неделя вместе с тестированием.

Ну наконец!
Ну наконец!

Мы уже неделю пользуемся ботом, он прекрасно ищет для нас билеты, правда иногда поиск занимает больше суток, особенно на нижние места.

Решили прикрутить к нему оплату и попробовать выкатить в общее пользование.

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

Основными направлениями поиска были выбраны маршруты Москва-Симферополь, Симферополь-Москва, Санкт-Петербург - Симферополь и Симферополь - Санк-Петербург.

Кстати можем сделать автопоиск и на любой другой маршрут, просто не анализировали где есть еще такая же проблема с билетами.

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

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

пример выдачи и кнопка ссылкой на покупку
пример выдачи и кнопка ссылкой на покупку

Если по каким то причинам бот не сможет найти билет по вашему запросу, мы готовы вернуть деньги, просто напишите в личку.

Вот собственно и сам бот https://t.me/BiletNaPoezdBot Надеюсь кому то он окажется полезен, так же как и нам.

P.S. Первый билет я по итогу сдал, так как смог найти позже на нижнее место.

99
11
29 комментариев

Надо попробовать. Я тоже задолбался искать билеты.

1
Ответить

Андрюха, это крутяк! Спасибо!

1
Ответить

Классная тема

Ответить

Ух ты! Нашел билет в Симферополь на 25 число )
Бот явно веселее, чем тыкать F5 по 30 раз в день!

1
Ответить

А почему билеты "выбрасываются" на сайте? Это возвраты?

Ответить

Да, это они есть, по сути мы их и пытаемся выловить. Ну или это заговор РЖД ))

1
Ответить

Это именно заговор РЖД.
Конечно не заговор, а удерживание билетов для каких-то целей. Скорее всего для своих людей - сотрудников, всяческих госслужащих и т.п. Иначе не объяснить отсутствие билетов в первые 10 секунд начала продаж и их появление четко за двое суток до отправления (это один конкретный поезд). Так же были случаи, когда билетов не было в продаже, а начальник вокзала приносил.

Ответить