Pull to refresh

3bileta.ru — агрегатор цен на билеты

Reading time 3 min
Views 1.4K
Всем привет! Хочу представить вам новый проект 3билета.ру.

3билета.ру – это агрегатор цен на билеты в театр, на концерты и спортивные мероприятия. На данный момент информация о наличии и ценах собирается с сайтов трех крупнейших билетных агентств. Пока в базе мероприятия только для города Москва.

Чтобы понять, какой сервис предлагает 3билета.ру, достаточно посмотреть список билетов для любого из мероприятий. Например, тут. В-общем, объяснять, как пользоваться сайтом я не буду, а вот про некоторые технические особенности расскажу. То есть отвечу на вопрос, как это работает.

Информация о мероприятиях

Первая задача, которую надо было решить для создания сервиса – заполнение базы данных мероприятий. Точнее говоря, важнее было создать систему, с которой заполнение информации было бы максимально автоматизировано. Надо сказать, что задача эта решена очень неплохо. На актуализацию информации о мероприятиях уходит всего пара человеко/часов в неделю.

Как это делается? Первым делом информация о будущих мероприятиях автоматически загружается из публичных источников: сайты-афиши, билетные агентства. Дальше, новые данные, например новая дата спектакля, попадают в так называемые задания для редактора. Обработка задания – привязка к существующему мероприятию, проверка на корректность. Вся процедура выполнения задания в большинстве случаев – несколько кликов. Задания, содержащие новые мероприятия, а не просто новые даты, сложнее, но тоже выполняются быстро.

Таким же образом обновляется база данных заведений. Но тут всё проще – заведения обновляются или появляются нечасто.

Загрузка данных о наличии и ценах

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

Решение этой проблемы следующее:
  1. В качестве информации идентифицирующей мероприятие используется связка дата/время и заведение. То есть предполагается, что в одном заведении в одно время не могут начинаться разные мероприятия.
  2. К сожалению, названия заведений могут тоже отличаться у разных источников. Это решается путем ручной привязки заведений источника к заведениям в базе данных сервиса 3билета.ру. Заведений немного, поэтому это делается быстро и однократно.
Роботы

Что если провайдер информации о наличии и ценах не предоставляет XML в нужном формате? Для этого случая существует отдельная программа-робот, которая просматривает страницы сайта-источника и в результате своей работы выдаёт XML нужного формата. В настоящее время этот метод используется для всех источников.

Что дальше?

Есть несколько направлений, по которым будет развиваться проект:
  1. Биржа билетов. То есть вторичный рынок билетов: возможность продавать билет другим пользователям сервиса. Должен признаться, что это была первоначальная идея. И вообще во многом сайт похож на своего американского аналога stubhub.com. Сейчас это, прежде всего, внешнее сходство :) К сожалению, я плохой дизайнер, поэтому позаимствовать дизайнерские решения на данном этапе проекта было достаточно логичным. Хотя многие, наверное, меня за это осудят. Сам не люблю, когда кто-то у кого-то что-то мягко говоря заимствует.
  2. Статистическая информация. Сервис уже сейчас способен генерировать очень полезные статистические отчеты. Если развивать эту тему, то можно будет, например, строить графики динамики цен и топы самых продаваемых билетов.
  3. Продажа электронных билетов. По этому направлению есть множество инновационных идей. Когда ближе подойду к их реализации обязательно их подробно опишу.
За новостями проекта следите в твиттере.

Заключение

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

UPD. Минусы вижу, критики — нет. За что? :)
Tags:
Hubs:
0
Comments 10
Comments Comments 10

Articles