Оценка результата со стороны. |
Получился сайт realty-graph.tom.ru.
Для серверного кода я выбрал веб-фреймворк Flask. В отличие от монстроидального Django, в нем нет многих готовых вещей-«батареек», в том числе доступа к БД и шаблонизатора. Однако можно использовать отдельные проекты, например, SQLAlchemy и Jinja2. В этом смысле фреймворк следует одному из принципов Unix-way: он делает единственную конкретную вещь, но делает ее хорошо. И действительно: чтобы организовать простой сайт, надо написать совсем мало кода.
В качестве базы данных — нереляционная MongoDB. В моем случае, когда нужно хранить небольшие объявления, подход «один объект — один документ» отлично работает.
Графики удобно рисовать на PIL, хотя оно и бедновато местами. Например, сглаживания для линий «из коробки» нет. Пришлось потанцевать с бубном, чтоб втиснуть библиотеку в virtualenv, полностью избавиться-таки от внешних зависимостей не получилось.
Для страниц — CSS-фреймворк Bootstrap от разработчиков Twitter. Действительно полезная штука, когда хочется прилично оформить страницы, но дизайнерских навыков нет совсем.
Инструменты выбраны, но откуда же взять наполнение? Есть в Томске такой отличный сайт tomsk.ru09.ru. Внутри богатая карта города, вакансии, каталог сайтов и, внимание! объявления о продаже недвижимости. Забрать их оттуда — дело техники, да простят меня тамошние ребята. Нет, не чувствую за собою вины, ведь эти данные не продаю и никакого профита не получаю. Теперь у нас есть объявления с ноября 2011 года.
Тут поджидает первый сюрприз. Авторы некоторых объявлений, видимо, так торопились, что поставили запятые не в тех местах. В итоге цена за квадрат в этих объявлениях может запросто превышать полмиллиона рублей, а может не дотягивать и до трех тысяч. Ну вроде я сумел такие объявления отсеять.
А второй сюрприз — это, собственно, результат. Получившиеся графики ничего шокирующего не показывают. Средняя цена за полгода колеблется где-то около одной точки. По-хорошему, надо бы нарисовать какую-нибудь аппроксимирующую кривую, чтобы динамику было видно наглядно. Это в планах. Пока пусть данные потихоньку копятся, и к концу года увидим изменения.
Волны в левой части — из-за малого количества объявлений в базе. |
Как и всегда, исходники доступны на GitHub.
для наглядности можно сделать "температурную-карту" города
чем дороже район, тем горячее
ну и чтобы два раза не вставать на эту же карту наложите POI — интересные точки: школы, сады, спорт-залы, торговые центры
Спасибо, была такая идея. Буду смотреть, что в плане карт предлагают.
У меня 404 отдается, он с внехи виден?
Да, просто сейчас тут небольшие перестановки, и домашний серверок пришлось выключить.