Dagerty

На Пикабу
поставил 8349 плюсов и 20 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
4514 рейтинг 274 подписчика 1 подписка 11 постов 5 в горячем

Реновация Москвы, немного цифр

В последнее время много новостей посвящены теме реновации Москвы, наш проект не стал оставаться в стороне и поэтому за выходные было решено сделать наглядное представление о сносе домов на основе открытой информации, собрав её воедино.


Всего в реновации, согласно списку мэрии Москвы участвуют 4562 дома, разбросанные по разным районам нашей столицы. Это наглядно видно на карте

Реновация Москвы, немного цифр Реновация, Труд, Снос, Снос пятиэтажек, Длиннопост

Просто карта это не интересно, поэтому было решено добавить всю возможную информацию о каждом доме, подлежащим сносу.


Метка на карте это средняя рыночная цена за 1 квадратный метр жилья в доме под снос.


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

Реновация Москвы, немного цифр Реновация, Труд, Снос, Снос пятиэтажек, Длиннопост

Для каждого дома, подлежащего сносу, сделали отдельную страничку с полной информацией и панорамой самого дома.

Реновация Москвы, немного цифр Реновация, Труд, Снос, Снос пятиэтажек, Длиннопост

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

Надеемся, что эта информация окажется полезной и интересной не только для тех кто напрямую связан с московской реновацией, но и просто для любознательных людей!)

Покликать и посмотреть всё самому можно по ссылке:
https://truedom.ru/renovation

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

Показать полностью 3

Немного в тему родственников или неожиданный квартирный вопрос...

Иногда идеи приходят спонтанно, иногда в процессе тяжелых "родов" мозга, а иногда их подкидывают совершенно посторонние люди со своими (порой неожиданными) проблемами и задачами. Так случилось и пару недель назад со мной.


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

Задача интересная, как тут не помочь человеку, начали думать.


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


Хорошо это видно на примере Москвы

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

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

На карте Москвы

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

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


Опять же на примере Москвы

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

За пару дней удалось реализовать тестовый вариант и подыскать человеку жильё

в "зоне без родственников"). В целом результатами остались довольны.


Поиск действительно удалось многим упростить, особенно если в городе нет метро, достаточно нарисовать нужную область на карте и подписаться на новые объявления и вуаля!


Вот так например можно узнавать о московских объявлениях по аренде в "зоне пикабу" =)

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Да простят меня местные художники за такое исполнение логотипа), чукча не уметь рисовать, чукча код писать)


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

Не знаю как вы, а я вижу толстого зайца-деда мороза с мешком подарков.

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Раз уж коснулся темы метро, то мы-таки добавили выбор станций на схеме метрополитена Москвы

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Питера

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Схемы метро и рисование области пока, увы, недоступны на мобильной версии сайта.


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

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Для еще большего удобства сделали универсального бота (работает в Вконтакте, Facebook, Skype и Telegram), который умеет предоставлять информацию о подозрительных арендодателях.


Пример телеграм-бота

Немного в тему родственников или неожиданный квартирный вопрос... Родственники, Труд, Аренда, Жилье, Квартирный вопрос, Программирование, Длиннопост

Кроме описанного постоянно занимаемся повышением качества нашего алгоритма распознавания собственников. Агенты и мошенники "мутируют", придумывают новые уловки, описание которых заняло бы внушительных размеров пост.


Помните, что в конечном итоге ни один супер-пупер сервис не защитит вас на 100% от проворных мошенников, думайте всегда своей головой и НИКОГДА НИКОГДА не платите ни копейки ДО того как лично

1.) Увидите и проверите само жилье


2.) Проверите документы собственности


3.) Заключите договор найма


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


P.S.S. Если вы - разработчик мобильных приложений и вам нечем заняться - тоже пишите.


Вместо заключения: Разработкой сервиса мы занимаемся на чистом энтузиазме вдвоем с товарищем, так что прошу не судить строго, если что пойдет не так(


ссылка на наш сервис Трудом РФ:
https://truedom.ru/


Удачных вам поисков!

Показать полностью 9

Реактивная доставка свежих объявлений

Реактивная доставка свежих объявлений Объявление, Риэлтор, Без посредников, Аренда, Длиннопост

Актуальная проблема актуальности

Пожалуй каждый, кто искал что-то на досках объявлений сталкивался с тем, что товар по объявлению уже продан и не актуален.

Проблема актуальности объявления особенно заметна когда действия происходят в крупных городах как Москва или Питер.


Это понятно и объяснимо: у покупателя нет столько времени, чтобы непрерывно просматривать свежие предложения на рынке.


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


Работают они примерно так: представьте, что есть некая программа, которая запускается по расписанию и проверяет наличие свежих предложений, если такие предложения есть — пользователю отправляется письмо. Важно отметить, что обычно график уведомлений это 1-2 раза в сутки, например утром и вечером.


Это действительно просто и удобно. Однако, когда дело касается аренды жилья, то такие уведомления становятся зачастую бесполезными. «Вкусные» квартиры сдаются очень быстро, в том числе и по той причине, что риелторы непрерывно мониторят рынок при помощи своих программных инструментов.


Актуальное решение проблемы актуальности

Совместно с некоторыми пикабушниками мы реализовали уведомления в реальном времени о самых новых предложениях об аренде жилья.

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


Для того чтобы получать свежие предложения, необходимо сделать 2 простых шага:


Выбрать нужные параметры поиска:

Реактивная доставка свежих объявлений Объявление, Риэлтор, Без посредников, Аренда, Длиннопост

Нажать кнопку «Подписаться» и указать свою электронную почту.

Реактивная доставка свежих объявлений Объявление, Риэлтор, Без посредников, Аренда, Длиннопост

Как только что-то появится по вашему запросу программа сообщит об этом вам в письме.

Ниже приведен пример письма:

Реактивная доставка свежих объявлений Объявление, Риэлтор, Без посредников, Аренда, Длиннопост

Как видно всё очень просто и кому-то сэкономит время на поиски.


Всё как всегда бесплатно, для пикабушников кодовое слово трупикабу

Удачных поисков!

Показать полностью 3

Снять квартиру и не за...ться

Как и обещал, выкладываю пост о том, как мне, моим друзьям и некоторым пикабушникам (большой привет подписчикам!) удается находить жилье для съема без посредников и при этом не замучатся. В своих предыдущих постах я подробно рассказал о том как дошел до жизни такой, а также о том, что мною движет сейчас. Если кратко, то я со своим университетским товарищем научились определять собственников жилья из множества объявлений агентов и мошенников.

Снять квартиру и не за...ться Аренда, Риэлтор, Доска объявлений, Длиннопост, Без посредников, Поиск, Программирование

Свои идеи и наработки мы применили в нашем бесплатном сервисе, которым может воспользоваться любой желающий (об этом ниже). За время своей активной работы, начиная с этой осени, наш алгоритм показал себя довольно неплохо, несмотря на то, что агенты и мошенники меняют периодически свои тактики, качеством результатов мы в целом довольны(подробно про популярные тактики агентов в предыдущих постах).


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

Далее список самых главных нововведений:


1. Рейтинг объявления.

За время работы системы нам удалось собрать прилично статистики, которую мы применяем в подсчете рейтинга каждого объявления, говоря простым языком, рейтинг показывает "вкусность" (привлекательность) объявления. При его расчете учитывается полнота и достоверность описания, качество фотографий, отклонение от средней цены по рынку, история продавца, в общем всё то, что получится проанализировать, используя наши статистические данные.

Снять квартиру и не за...ться Аренда, Риэлтор, Доска объявлений, Длиннопост, Без посредников, Поиск, Программирование

Очевидно рейтинг полезен для того, кто ищет жилье, кроме того он не менее полезен и для тех, кто планирует жилье сдать. Дело в том, что все популярные доски объявлений действуют по принципу "кто последний, тот и в топе" (без учета премиум объявлений и всевозможных платных "поднятий").

Пример: вы опубликовали объявление, легли спать, а после этого агенты и мошенники завалили доску объявлений своими предложениями и естественно ваше объявление "скатилось" вниз поисковой выдачи, вы ждете звонков от квартирантов, а в итоге вас достают звонками одни агенты. В случае с рейтингом такие манипуляции агентов не имеют никакого смысла и ваша задача состоит лишь в том, чтобы грамотно и достоверно заполнить объявление, всё остальное система сделает за вас.


2. Размещение объявлений.


Из первого пункта плавно вытекает второй пункт, мы добавили возможность публиковать объявления у нас, в любой регион и населенный пункт России, без регистрации и естественно бесплатно (как впрочем и всё что у нас есть на сайте). Так что если у вас есть, что сдать и желание покорить нашу первую страницу выдачи - милости просим и будем рады помочь.

Снять квартиру и не за...ться Аренда, Риэлтор, Доска объявлений, Длиннопост, Без посредников, Поиск, Программирование

3. Питер.


Да, мы наконец-то дошли до северной столицы нашей необъятной. Теперь система хотя и в тестовом режиме, но по большей части полноценно функционирует по Питеру и городам Ленинградской области.

Снять квартиру и не за...ться Аренда, Риэлтор, Доска объявлений, Длиннопост, Без посредников, Поиск, Программирование

4. Множество других, в основном технических нововведений, включая распознавание похожих объявлений, информация о домах, работа с картой и проч.

Снять квартиру и не за...ться Аренда, Риэлтор, Доска объявлений, Длиннопост, Без посредников, Поиск, Программирование

Заходите и пользуйтесь! Для пикабушников всё по-старому: трудом.рф, кодовое слово трупикабу


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


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


И вообще давайте дружить, вступайте в нашу группу, пишите свои идеи, жалобы или предложения, для нас это очень-очень важно.


Удачных поисков!

Показать полностью 5

Из Калуги к Звёздам

Друзья, я уже 8 лет живу в Москве, но ни на минуту не забывал про свой родной город, про свою Калугу. Скоро моей малой Родине исполняется 645 лет и к этому дню я приготовил ей подарок-песню, которую сочинил сам в перерывах между борьбой с риелторами и мошенниками по недвижимости)

Правила съема: Метод ...

Друзья! На связи снова те ребята, которые запилили сайт по распознаванию частных объявлений и выявлению посредников при аренде жилья. В этом посте я расскажу что у нашей системы под капотом.

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

В начале хотелось бы расставить точки над “i”:

Наш сайт бесплатный и все что есть сейчас останется бесплатным навсегда.


Мы ставим перед собой цель упростить процесс аренды для честных квартиросъемщиков и максимально защитить их от рисков и лишних переплат, как когда-то защитили себя и своих друзей, а всё что из этого получится зависит от Вас, друзья...


Сайт зашифрован в ребусе, а кодовое слово для всех пикабушников как и прежде: трупикабу.


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


Раз. http://pikabu.ru/story/kak_programmist_kvartiru_snimal_ili__...

Два. http://pikabu.ru/story/kak_programmist_kvartiru_snimal_prodo...


Поехали!

Как в первом приближении выглядит задача по определению частных объявлений – получаем с некоторой периодичностью новые объявления с ресурса, получение их номеров и сравнение с тем, что есть в базе. Кажется, что все довольно просто, однако, как обычно дьявол кроется в деталях. Возникает множество проблем и нюансов. Вот некоторые из них:


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


2. Объявлений очень много. Только с одного Авито по Москве в день публикуется более 4000 объявлений, с ЦИАН – более 3000 объявлений. Надо уметь их быстро обрабатывать.


3. Для получения номера телефона, требуются дополнительные действия – сымитировать нажатие на кнопку/распознать картинку и т.п.


4. Фильтрации только по номеру не хватает – мошенники и риелторы далеко не дураки и используют огромное количество симок и также специальные сервисы.


5. Как правило, объявления, которые являются заведомо мошенническими, все равно появляются в выдаче, несмотря на модерацию. Однако, модератор может заблокировать объявление потом.


6. Хорошие предложения уходят быстро, и их так же быстро надо удалять из своей базы.


С самого начала было понятно, что одним сервером ограничиться будет трудно – необходимо несколько серверов.


Во время учебы в институте, у нас как минимум раз в год, проводилась конференция компании Microsoft, на которой они рассказывали о своих новых технологиях (помню времена, когда они пиарили покойные ныне Silverlight и XNA). Тогда же давали доступ к программе DreamSpark. По данной программе студентам российских вузов предоставляется доступ к лицензионному ПО (в наше время это были Windows Server 2008R2, SQL Server 2008, Visual Studio 2010 Professional) при условии использования его в образовательных целях. Данная программа доступна абсолютно всем российским студентам. В некоторых ВУЗах (например в нашем МАИ) была доступна расширенная программа – MSDN Academic Alliance. В ней список ПО гораздо шире.


Всё в Ажуре!

Так сложилась, что в мир .NET нас затянули не эти конференции, а первые места работы. Да и в самих конференциях мы особо не участвовали. Когда встал вопрос о выборе стека и архитектуры, я вспомнил про еще одну программу Microsoft – BizSpark. Эта программа для стартапов и малого бизнеса. Требования к компании минимальны – даже не требуется юридической регистрации. В программы предоставляется доступ к огромному количеству лицензионного ПО, а также 5 подписок по 150$ на их облачный сервис Azure(в своей среде мы называем его просто ажур). Вообще, рассказ про программы тянет на отдельный пост. Мы подали заявку и в течение недели нам ее утвердили и предоставили все данные.


Таким образом, мы получаем 750$ (5 подписок по 150$) в месяц на хостинг. Программа действует 3 года, то есть в общей сумме Microsoft за все время участия в программе подсобит нам примерно 27 000$

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

На самом деле не всё так как может показаться на первый взгляд. Дело в том, что выделяемый бюджет можно тратить лишь на продукты и услуги самих Microsoft и, естественно, нельзя обналичить или, например, вложить в рекламу или в сторонние сервисы.

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

Плюс у нас есть два не самых новых компа в качестве серверов в нашем маленьком ДЦ в квартире. Сейчас на них выполняются в основном служебные задачи.


Сервера по-домашнему и исходный кот проекта)

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

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

Система была разбита на несколько компонентов (сервисов):


1. Spider (паук) – краулер. Этот компнонент занимается тем, что получает страницу результатов поиска доски объявлений и из нее выделяет отдельные объявления. Он довольно простой – его задача просто получить ссылку на объявление и базовые данные – тип объявления (посуточная/длительная аренда), количество комнат, адрес. Получив ссылку, он отправляет ее дальше.


2. Scanner (сканер) – задача компонента открыть страницу одного объявления и вытащить максимум информации об объявлении – описание, фотографии, номер телефона, условия проживания, этаж и т.п.


3. OCR – веб-сервис, который распознает номер телефона с картинки и возвращает текст


4. Processor – центральный компонент. Сначала он получается данные от паука. Проверяет, публиковалось ли это объявление ранее или нет. Если объявление не публиковалось – он передает его сканеру, для получения полных данных. После того как сканер обработал объявления, проводится геокодирование (по адресу получает координаты дома), получаются ближайшие станции метро, анализируется цена объявления, проверяется есть ли у человека другие публикации, проверяется реальные ли данные указаны в информации о доме, проводится лексический анализ объявления. После выполнения всех действий, объявление добавляется в базу. И становится в очередь на периодическую проверку (пингования).


5. Pinger (пингер) - задача этого компонента проверять, доступно ли еще объявление. Он с некоторой периодичностью загружает страницу объявления и проводит анализ ответа. Если объявление было заблокировано модератором доски – перед нами мошенник и его номер идет в черный список. Если объявление было удалено, оно просто отмечается как удаленное в базе.


6. SMMTracker – маленький сервис который обеспечивает интеграцию с социальными сетями. У нас есть такая фишка на сайте – доступ за репост во Вконтакте. Т.е. человек, который не знает кодового слова, может просто поделиться записью из нашей группы, и он сможет использовать ссылку на свой профиль в качестве кодового слова. Задача этого компонента отследить новые репосты и добавить кодовое слово в базу.


Как видите, у нас много компонентов, и их надо как-то связать. Мы используем два способа связи – очереди и веб-сервисы. OCR-сервис является веб-сервисом, остальные компоненты общаются через очереди.


“В очередь, сукины дети, в очередь!”.

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

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


1. Spider получает список документов и добавляет их в очередь «documents»


2. Scanner читает очередь «scan-request», получает подробный документ и отправляет результат в «scan-result»


3. Pinger читает из очереди «ping-request», результат добавляет в «ping-result».


4. Processor читает очереди «documents», «scan-result», «ping-result»:


4.1. В очереди «documents» находятся документы от паука. Если документ надо отправить на сканирование – добавляет его в очередь «scan-request».


4.2. В очереди «scan-result» находятся результаты сканирования


4.3. В очереди «ping-result» находятся результаты проверки существования документа. Если документ все еще существует, он добавляется снова в «ping-request»


Как же обеспечиваются отказоустойчивость и распределенность?


1. Мы используем сервис очередей, который предоставляет Azure. Это сервис достаточно дешевый, но при этом очень надежный – данные в очереди несколько раз резервируются и хранятся одновременно в различных дата-центрах.


2. Каждый сервис запущен в нескольких экземплярах (как минимум в двух), на разных серверах. Если один сервер выходит из строя – нагрузка ложится на остальные. Такая же ситуация, если сервер начинают банить.


3. Мы можем довольно просто регулировать нагрузку – если в очередях скапливается много документов, мы просто устанавливаем копию еще одного сервиса (это все равно, что открыть дополнительные кассы в магазине)


4. У нас настроено централизованное логирование, и мы быстро узнаем, когда что-то идет не так.


Технологии, которые мы используем.

Все сервисы у нас сделаны в виде служб Windows.


В качестве основного хранилища мы используем ElasticSearch. Выбор на такое решение пал по нескольким причинам – отказоусточивость, масштабируемость, распеределенность и скорость. Именно в это хранилище пишутся все найденные объявления. Также там хранится сопутствующая информация – станции метро, статистика цен и прочее. К сожалению, ничего не бывает бесплатно, и у ElasticSearch есть свои ограничения – например, при добавлении объявления, в поиске оно появляется не сразу, а через некоторое время (10-300мс), дорогие операции обновления документа. Поэтому, для некоторых утилитарных задач мы используем MongoDB.


Для сайта мы используем ASP.NET MVC и React. Если ASP.NET MVC – это уже стандарт в мире .NET, то React только-только завоевывает сердца .NET разработчиков. Выбор на React пал во многом из-за возможности Server-Side рендеринга (грубо говоря на сервере как Razor, только React) и скорости работы.


Для централизированного логирования, мы используем ELK (ElasticSearch, Logstash, Kibana) стек. Это довольно стандартное решение для таких задач. Мы можем быстро отслеживать ошибки и важные информационные сообщения.


Автоматизация обновлений.

Правила съема: Метод ... Объявление, Труд, Авито, Циан, Программирование, Аренда, Длиннопост, Ищу информацию

Самое сложное в такой распределенной системе – это развертывание новых версий. Согласитесь, довольно неудобно вручную обновлять хотя бы один сервис на трех-четырех серверах. А обновлять сервисы иногда приходится довольно часто. В мире Linux есть Ansible, Docker и много других систем, позволяющих осуществлять автоматическое развертывание на многих серверах. Для .NET вариантов совсем мало. Но мы пока остановились на бесплатной версии Octopus-Deploy. Эта штука решила всю головную боль с развертыванием – теперь чтобы обновить версию, достаточно нажать буквально пару кнопок.


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


В конце хотелось бы добавить, что если у вас есть вопросы или предложения (нужен совет по аренде жилья, вопросы технического характера или что-либо еще) мы с радостью ответим не только в комментариях, но и на нашем канале в телеграм или в группе вк.


Удачных поисков!

Показать полностью 6

Как программист квартиру снимал продолжение или ...

Друзья! Я очень рад и удивлен одновременно, что моя первая статья навела шороху здесь, на Пикабу)

Для тех, кто не в курсе, советую ознакомиться с первой частью, про то, как я и мой сосед по маёвскому общежитию, вчерашние студенты, невольно встали на путь борьбы с посредниками по аренде недвижимости и что из этого получилось

http://pikabu.ru/story/kak_programmist_kvartiru_snimal_ili__...

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

А теперь к делу.

В первой части был рассказан общий принцип работы недобросовестных риелторов и мошенников на досках объявлений.

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


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


Если не знать одно "но": в случае с мошенниками и агентами, оформляет объявление, как правило, специальный робот, по заранее подготовленному шаблону.

Именно поэтому простейший текстовый анализ выявляет сильную схожесть описаний объявлений у казалось бы совершенно разных квартир и продавцов(иначе говоря, наш баянометр орёт=)).


Однако было бы слишком наивно выявлять собственников только лишь по тому, как оформлено объявление, поэтому в нашей системе применяется комплексный подход, в котором мы анализируем:

телефон, текст описания, цену, адрес, фотографии, параметры объявления(например: этаж, материал стен, год постройки и т.д.) и даже количество просмотров у объявления.


Кроме этого, для того чтобы при анализе делать правильные выводы необходимо знать методики и трюки, которые применяют агенты и мошенники,

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


Эти простые советы позволят вам без каких-либо технических средств отсекать большой "кусок" посредников при поиске жилья.


1. "Идеальное объявление". Трюк стар как мир, основан на том, что каждый человек верит в чудо(или халяву, кому как удобно), верит в то, что сегодня реально снять квартиру в центре столицы с идеальным ремонтом меньше чем за 25 000 рублей, без комиссии, без залога(без смс, без регистрации, ага).

Вот один из наглядных примеров с известной доски объявлений.

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

Как правило, такой трюк рассчитан на недавно приехавших в Москву людей, иностранцев, туристов, которые еще не успели понять что к чему, опытный человек на такое не поведется.


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

Простым языком, наша система знает некоторую “среднюю цену”(медиану) аренды жилья с конкретными параметрами в том или ином районе города в данный момент, а также использует (пока еще небольшую) историю изменения этой “средней цены”.


2. "Как в кино!". Трюк очень похож на описанный в 1 пункте, применяется для привлечения внимания. По сути такое же "вкусное" объявление, только по цене и параметрам, как правило, близко к реальным.

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

"Фотографии" объявления получаются яркие, красочные, как в кино!

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

Простой поиск по этой картинке в google

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

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


3. "Собственник, агентам не звонить!!". Что удивительно, в последнее время частенько вот прямо так (с двумя восклицательными знаками в конце) стали писать в описании, якобы собственники.

Трюк основан на том, чтобы замаскировать агентское объявление под объявление собственника: публикуется объявление в разделе "частные", пишется, что без комиссии(иногда даже и без залога) заезжай и живи!


Однако, позвонив по такому объявлению оказывается, что продавец это агент(или брат,сват,тесть,дядь=)) и квартиру "вот только что уже сняли, но есть другая квартира, такая же хорошая".


У нас был комичный случай, когда наша программка обнаружила такое вот объявление спустя 10 секунд после его фактической публикации на известной доске объявлений и агент от неожиданности не очень складно рассказывал нам свою историю про "вот-вот только что перед вами звонили и сняли", и недоговорив, просто бросил трубку.


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


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


Бывают конечно случаи когда собственник сдает сразу несколько своих квартир в Москве, но мы с такими мажорами не водимся (шутка, мы обрабатываем и этот случай тоже).


4. "Меченные объявления". Легче всего объяснить, что это за зверь картинкой(часть номера скрыта мной):

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

Такие объявления, якобы защищены от копирования (к тому же телефон на картинке бросается в глаза), однако зачастую на картинках указан номер уже "раскрытого" агента, а в графе номер продавца указан подставной/левый новый номер.


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


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


Это тот самый случай когда ручная обработка проще автоматической. В своей системе для выявления таких случаев мы используем оптическое распознавание текста на картинках (OpenCV модуль с обученным фильтром Neumann - Matas + Tesseract).


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


5. "Новые номера". Это тоже самое что 4 случай, только без меченных картинок, просто новый "левый" номер, который перенаправляет вас на агента/мошенника.

Пожалуй это самый неприятный случай из описанных. Он тяжело распознаваем, как в ручном режиме так и в автоматическом.


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


Теперь хотелось бы сказать пару слов о нашей системе. Наш бесплатный сервис находит объявления от собственников, позволяя снять жилье без посредников и лишних переплат.


На данный момент мы завершили переезд сервера в Azure (почему именно туда, мы расскажем в следующей статье), однако часть сервисов по-прежнему развёрнуты в нашем "дата-центре", за которым пристально приглядывает наш пушистый заведующий=).

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

А так наш заведующий проводит ревизию кода проекта)

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

На данный момент мы обрабатываем данные по Москве и частично Московской области. Данные по Питеру находятся в процессе анализа.

Буквально на днях добавили поиск жилья на карте. Надеемся, что упростили процесс поиска для тех, кто планировал найти жилье в МО.

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

В остальном у нас всё по-прежнему, заходите, и выбирайте жилье без посредников

(кодовое слово: трупикабу)

Как программист квартиру снимал продолжение или ... Труд, Длиннопост, Доска объявлений, Риэлтор, Поиск, Программирование, Аренда, Авито

В заключении хотелось бы сказать огромное спасибо пикабушникам, которые, работая с нашим сайтом, пользовались сервисом жалоб на объявления, вы - настоящие тру, друзья!


Я сам вдохновлен успехом пикабу и тем как это сообщество само по себе является этаким "санитаром леса", регулятором и модератором содержимого сайта.


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


В следующем посте я постараюсь рассказать детально о стеке технологий и как все устроено с технической точки зрения.


P.S. Внимание! Загадка для внимательных. (Разгадка кроется в самих постах)


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


Вопрос: Как мы это делаем?


Тому кто ближе всего будет к разгадке отправим нашего заведующего "дата-центром"(шутка).


Удачных поисков!

Показать полностью 9

Как программист квартиру снимал или ...

ДРУЗЬЯ! Пост получился объемным, НО уверен он многим сэкономит деньги и нервы при поиске съемного жилья, особенно в крупных городах.

Как программист квартиру снимал или ... Аренда, Доска объявлений, Длиннопост, Труд, Риэлтор, Поиск, Программирование, Лексический анализ

В общем было это 2 года назад, мое обучение в универе подходило к концу,

также же как безоблачное(не всегда) и бесплатное(почти) проживание в стенах маёвской общаги. Так как у меня была куча амбиций и специальность программиста, то я не задумываясь решил остаться в Москве, и как у нас говорили: закодить ее полностью)).


К слову мой сосед был близок мне по духу и поэтому на начальном этапе было решено снять что-нибудь на двоих(и это я сейчас не про девочек). За 2 дня поиска на известном сайте я удивился двум вещам:


1. помимо арендной платы есть оплата депозита и комиссии

2. эта оплата ни хрена не маленькая.


По деньгам, в сумме с соседом у нас было около 60 тысяч рублей при средней стоимости аренды двушки в 35к еще просили 35к депозита + 35к комиссии агенту, итого: 105к(!). Деньги адовые, занимать не хотелось, да и вряд ли бы получилось, среди таких же студентов живем как бэ. Поэтому было решено применить свой еле окрепший скил программиста.


За время поиска и обзвона мы заметили интересную особенность: какие бы фильтры не выбирали, на главной странице поиска почти всегда попадаем на агентов, а с агентами нам разговор заказан, в виду отсутствия для них соответствующих премиальных.


Мы задались вопросом неужели только одни агенты сдают жилье, а частников совсем нет, и если частники есть, то где они?


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


1. Из всех объявлений за сутки, количество реальных частников и собственников не превышает 20%


2. Топ выдачи(т.е. первые страницы результатов поиска), особенно в топовое время(примерно с 10 по 13 и с 17 по 21) чуть больше, чем полностью забит риелторами, агентами и прочими посредниками.


3. Риелторы, агенты, мошенники люто любят всевозможных ботов, автоматически засирающих доску объявлений в хлам.


4. Известный сайт не спешит банить/удалять сгенерированные и фейковые объявления(примерное время бана около 40 минут)


5. Частники невероятно рады услышать в трубке голос реального квартиросъемщика, а не агента.


Насколько нам стало известно общая схема следующая: в погоне за наживой, агентства, частные риелторы или просто мошенники используют 2 вида роботов(ботов):


1. Собирающий(Crawler) - задача этого бота как можно быстрее выцепить объявление частника и переслать его агенту/мошеннику


2. Публикующий(Spammer) - задача этого бота сгенерировать и опубликовать как можно больше объявлений(копий или просто левых) агента/мошенника


После того как первый робот прислал объявление, агент связывается с хозяином квартиры, уточняет детали, проверяет, что это объявление не результат работы 2 робота другого агента(был комичный случай когда агент упорно клонировал свое собственное фейковое объявление=)) после чего, часто даже без разрешения собственника, пускает в тираж это объявление, только со своими контактами и комиссией при помощи 2 робота.


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


Но вернемся к проблеме бытовой, которая к слову, решилась быстро: теперь мы знали собственников, и обзвонив пару вариантов без проблем сняли двушку за 32 тысячи, договорившись даже разбить залог на 2 месяца. Итого: 32к + 16к = 48к (+ 16к через месяц)- 64к, вместо 105к при наивном поиске в начале.


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


Так, месяца 2 назад было решено реанимировать код и на его основе запустить бесплатный сайт поиска жилья для своих: трудом.рф


Доступ к нему бесплатный, но ограничен, нужно ввести кодовое слово, для всех пикабушников кодовое слово: трупикабу


Надеюсь наша штука кому-нибудь станет полезной, и кто-то не станет переплачивать снова и снова за воздух агентам и посредникам.


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


Буду рад ответить на вопросы.


Удачных поисков!

Показать полностью 1
Отличная работа, все прочитано!