Всем привет! Хочу представить вам новый проект 3билета.ру.
3билета.ру – это агрегатор цен на билеты в театр, на концерты и спортивные мероприятия. На данный момент информация о наличии и ценах собирается с сайтов трех крупнейших билетных агентств. Пока в базе мероприятия только для города Москва.
Чтобы понять, какой сервис предлагает 3билета.ру, достаточно посмотреть список билетов для любого из мероприятий. Например, тут. В-общем, объяснять, как пользоваться сайтом я не буду, а вот про некоторые технические особенности расскажу. То есть отвечу на вопрос, как это работает.
Первая задача, которую надо было решить для создания сервиса – заполнение базы данных мероприятий. Точнее говоря, важнее было создать систему, с которой заполнение информации было бы максимально автоматизировано. Надо сказать, что задача эта решена очень неплохо. На актуализацию информации о мероприятиях уходит всего пара человеко/часов в неделю.
Как это делается? Первым делом информация о будущих мероприятиях автоматически загружается из публичных источников: сайты-афиши, билетные агентства. Дальше, новые данные, например новая дата спектакля, попадают в так называемые задания для редактора. Обработка задания – привязка к существующему мероприятию, проверка на корректность. Вся процедура выполнения задания в большинстве случаев – несколько кликов. Задания, содержащие новые мероприятия, а не просто новые даты, сложнее, но тоже выполняются быстро.
Таким же образом обновляется база данных заведений. Но тут всё проще – заведения обновляются или появляются нечасто.
Здесь процедура достаточно стандартная для любого агрегатора, такого как Яндекс.Маркет. На вход загрузчику подается XML-файл специального формата. Важная деталь в данном случае, это способ определения того, что информация относится к вполне определенному мероприятию. Проблема в том, что разные источники могут создавать XML-файлы с различающимися наименованиями мероприятий и другими полями.
Решение этой проблемы следующее:
Что если провайдер информации о наличии и ценах не предоставляет XML в нужном формате? Для этого случая существует отдельная программа-робот, которая просматривает страницы сайта-источника и в результате своей работы выдаёт XML нужного формата. В настоящее время этот метод используется для всех источников.
Есть несколько направлений, по которым будет развиваться проект:
Спасибо, что дочитали до этого места. Пожалуйста, отписывайтесь в комментариях, излагайте своё мнение. Больше критики, больше критики!
UPD. Минусы вижу, критики — нет. За что? :)
3билета.ру – это агрегатор цен на билеты в театр, на концерты и спортивные мероприятия. На данный момент информация о наличии и ценах собирается с сайтов трех крупнейших билетных агентств. Пока в базе мероприятия только для города Москва.
Чтобы понять, какой сервис предлагает 3билета.ру, достаточно посмотреть список билетов для любого из мероприятий. Например, тут. В-общем, объяснять, как пользоваться сайтом я не буду, а вот про некоторые технические особенности расскажу. То есть отвечу на вопрос, как это работает.
Информация о мероприятиях
Первая задача, которую надо было решить для создания сервиса – заполнение базы данных мероприятий. Точнее говоря, важнее было создать систему, с которой заполнение информации было бы максимально автоматизировано. Надо сказать, что задача эта решена очень неплохо. На актуализацию информации о мероприятиях уходит всего пара человеко/часов в неделю.
Как это делается? Первым делом информация о будущих мероприятиях автоматически загружается из публичных источников: сайты-афиши, билетные агентства. Дальше, новые данные, например новая дата спектакля, попадают в так называемые задания для редактора. Обработка задания – привязка к существующему мероприятию, проверка на корректность. Вся процедура выполнения задания в большинстве случаев – несколько кликов. Задания, содержащие новые мероприятия, а не просто новые даты, сложнее, но тоже выполняются быстро.
Таким же образом обновляется база данных заведений. Но тут всё проще – заведения обновляются или появляются нечасто.
Загрузка данных о наличии и ценах
Здесь процедура достаточно стандартная для любого агрегатора, такого как Яндекс.Маркет. На вход загрузчику подается XML-файл специального формата. Важная деталь в данном случае, это способ определения того, что информация относится к вполне определенному мероприятию. Проблема в том, что разные источники могут создавать XML-файлы с различающимися наименованиями мероприятий и другими полями.
Решение этой проблемы следующее:
- В качестве информации идентифицирующей мероприятие используется связка дата/время и заведение. То есть предполагается, что в одном заведении в одно время не могут начинаться разные мероприятия.
- К сожалению, названия заведений могут тоже отличаться у разных источников. Это решается путем ручной привязки заведений источника к заведениям в базе данных сервиса 3билета.ру. Заведений немного, поэтому это делается быстро и однократно.
Роботы
Что если провайдер информации о наличии и ценах не предоставляет XML в нужном формате? Для этого случая существует отдельная программа-робот, которая просматривает страницы сайта-источника и в результате своей работы выдаёт XML нужного формата. В настоящее время этот метод используется для всех источников.
Что дальше?
Есть несколько направлений, по которым будет развиваться проект:
- Биржа билетов. То есть вторичный рынок билетов: возможность продавать билет другим пользователям сервиса. Должен признаться, что это была первоначальная идея. И вообще во многом сайт похож на своего американского аналога stubhub.com. Сейчас это, прежде всего, внешнее сходство :) К сожалению, я плохой дизайнер, поэтому позаимствовать дизайнерские решения на данном этапе проекта было достаточно логичным. Хотя многие, наверное, меня за это осудят. Сам не люблю, когда кто-то у кого-то что-то мягко говоря заимствует.
- Статистическая информация. Сервис уже сейчас способен генерировать очень полезные статистические отчеты. Если развивать эту тему, то можно будет, например, строить графики динамики цен и топы самых продаваемых билетов.
- Продажа электронных билетов. По этому направлению есть множество инновационных идей. Когда ближе подойду к их реализации обязательно их подробно опишу.
Заключение
Спасибо, что дочитали до этого места. Пожалуйста, отписывайтесь в комментариях, излагайте своё мнение. Больше критики, больше критики!
UPD. Минусы вижу, критики — нет. За что? :)