В жизни каждого из нас наступает такой момент, когда в голову забирается мысль о смене места жительства. Поскольку переезжать в другую страну я морально не готов, решил переместиться «по горизонтали»: в другой район города.
Продажу квартиры поручил агенту, который, к слову, бился над этой задачей около полугода. А вот поиском решил заняться сам. В сети множество сайтов, где публикуют объявления о продаже квартир. Крупнейший из них, как мне кажется, Бюллетень недвижимости (по крайней мере, в Петербурге). Но есть один нюанс: «портал» давно не обновлялся технически, поэтому возможность подписаться на интересующие объявления не представляется возможным.
Стоит отметить, что по образованию я юрист, занимаюсь недвижимостью (в основном дело имею с земельными участками). Отношение к программированию имею крайне опосредованное: в 1999, когда еще пешком под стол ходил, пытался разобрать HTML газеты Коммерсант по кусочкам. Чуть позже решил изучить PHP, но не смог подключиться к базе данных. Так был заброшен на полки талмуд по программированию.
Спустя 10 лет появилась острая необходимость сделать сайт-визитку, решил попробовать свои силы и… Втянулся. С тех пор запустил парочку малоизвестных проектов, оттачивая мастерство. Обратился в рельсоводство.
Это было краткое отступление. Вернемся же к квартирам. Потратив несколько дней на изучение предложений на рынке, столкнулся с небольшой проблемой: количество листиков с разными телефонами и адресами, заметками и мыслями просто зашкаливало. Как вариант рассматривался икселевский файл, где все это можно было вести чуть более удобно. Но путь был выбран другой.
За несколько часов набросал небольшой сайт-парсер, который крутиться на удаленной «машине». Основное его предназначение: сбор сначала всех интересующих объявлений, а затем, дважды в день, сбор новых и уведомление меня об этом по электронной почте.
Так как на сайте Бюллетеня недвижимости нет возможности выбрать количество объектов, выводимое на страницу, создается довольно таки большой «пагинатор». Писать код для перехода по этим ссылкам не было никакого желания, поэтому был использован небольшой хак: отображение версии для печати, где все объекты были собраны в одну большую таблицу.

Небольшое пояснение: пожелания по району у меня довольно таки определенные, поэтому ссылка для парсера хардкорная. Дальше все просто: собираются все адреса объектов и ссылки на его карточку и заносятся в базу. На этом этапе идет проверка по ID-объекта на сайте-доноре. Все это обернуто в rake-задание.
Интерфейс прост: объекты деляться на те, что в производстве и дефектные (те, которые по тем или иным причинам были мной отфильтрованы). Все заметки (комментарии) заносят в текстовое поле. В качестве «украшательства» был выбран Bootstrap, чтобы не тратить лишнее время.

В целом, получилась довольно таки удобная штука, которая, к слову, сэкономила уйму времени.
К слову, квартиру я пока не выбрал, езжу на просмотры.
Продажу квартиры поручил агенту, который, к слову, бился над этой задачей около полугода. А вот поиском решил заняться сам. В сети множество сайтов, где публикуют объявления о продаже квартир. Крупнейший из них, как мне кажется, Бюллетень недвижимости (по крайней мере, в Петербурге). Но есть один нюанс: «портал» давно не обновлялся технически, поэтому возможность подписаться на интересующие объявления не представляется возможным.
Стоит отметить, что по образованию я юрист, занимаюсь недвижимостью (в основном дело имею с земельными участками). Отношение к программированию имею крайне опосредованное: в 1999, когда еще пешком под стол ходил, пытался разобрать HTML газеты Коммерсант по кусочкам. Чуть позже решил изучить PHP, но не смог подключиться к базе данных. Так был заброшен на полки талмуд по программированию.
Спустя 10 лет появилась острая необходимость сделать сайт-визитку, решил попробовать свои силы и… Втянулся. С тех пор запустил парочку малоизвестных проектов, оттачивая мастерство. Обратился в рельсоводство.
Это было краткое отступление. Вернемся же к квартирам. Потратив несколько дней на изучение предложений на рынке, столкнулся с небольшой проблемой: количество листиков с разными телефонами и адресами, заметками и мыслями просто зашкаливало. Как вариант рассматривался икселевский файл, где все это можно было вести чуть более удобно. Но путь был выбран другой.
За несколько часов набросал небольшой сайт-парсер, который крутиться на удаленной «машине». Основное его предназначение: сбор сначала всех интересующих объявлений, а затем, дважды в день, сбор новых и уведомление меня об этом по электронной почте.
Так как на сайте Бюллетеня недвижимости нет возможности выбрать количество объектов, выводимое на страницу, создается довольно таки большой «пагинатор». Писать код для перехода по этим ссылкам не было никакого желания, поэтому был использован небольшой хак: отображение версии для печати, где все объекты были собраны в одну большую таблицу.

Небольшое пояснение: пожелания по району у меня довольно таки определенные, поэтому ссылка для парсера хардкорная. Дальше все просто: собираются все адреса объектов и ссылки на его карточку и заносятся в базу. На этом этапе идет проверка по ID-объекта на сайте-доноре. Все это обернуто в rake-задание.
namespace :fetch do
task :spb => :environment do
a = Mechanize.new
site = "http://www.bn.ru/zap_fl.phtml?kkv1=2&kkv2=2&price1=&price2=4000&so1=&so2=&sk1=&sk2=&first=1&sort_ord=0®ion1=1®ion6=6®ion42=42®ion44=44®ion47=47&text=&start=0&sort=0&print=printall&sorttype=0&sortordtype=0"
flats = a.get(site).links_with(:href => %r{/detail/})
flats.each do |flat|
unless flat.text.blank?
empty, detail, pflats, id = flat.href.to_s.split("/")
address = flat.text
bn_id = id.gsub("?from=", '').gsub("psearch", "").gsub("search", "").gsub(".html", "")
new_flat = Flat.where(bn_id: bn_id).first_or_create address: address, bn_new: true, visible: true, status: 0
end
end
end
end
Интерфейс прост: объекты деляться на те, что в производстве и дефектные (те, которые по тем или иным причинам были мной отфильтрованы). Все заметки (комментарии) заносят в текстовое поле. В качестве «украшательства» был выбран Bootstrap, чтобы не тратить лишнее время.

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