Парсер объявлений сайта http://slando.com.ua
Назначение программы-парсера
Программа предназначена для заливки объявлений недвижимости сайта http://slando.com.ua на какой-либо информационный ресурс, например на сайт, содержащий объявления по недвижимости, либо в базу данных какого либо CRM.
Технические требования
Пограмма-парсер написана на языке PHP, версии 4.0.2 и выше с использованием библиотеки CURL.
Содержимое программы-парсера
Парсер состоит из восьми файлов, находящихся в одной директории:
- .htaccess — файл с настройками для директории
- import_slando.php — файл записи объявлений в базу данных.
- geogr.php — файл содержащий данные географической структуры (иерархии) сайта: идентификаторы областей, городов, ройонов и связи между ними.
- parser_slando.php — файл парсер объявлений сайта http://dom.ria.ua
- parser_kiev.php — файл парсер объявлений города Киева сайта http://dom.ria.ua
- parser_region.php — файл парсер объявлений указанной (параметр region_id) области сайта http://dom.ria.ua
- service.php — файл для загрузки всех объявлений сайта,
файл обращается к файллу parser_region.php с разными параметрами (идентификатор региона, идентификатор рубрики, типа предложения)
Настройка парсера
- count_limit — ограничение по количеству объявлений
- rnd — флаг: использовать перемешивание или нет
- time_limit — ограничение объявлений по времени (если с даты подачи последнего на странице поиска объявления прошел больший интервал — следущая страница не загружается)
- массив types_ob — идентификаторы типа предложения (1 - Продажа, 2 - Аренда)
- массив types_realty — идентификаторы типа недвижимости (1 - Квартира, 2 - Дом, дача, 3 - Офис, 4 - Участок, 5 - Коммерческая недвижимость, 6 - Курортная недвижимость, 7 - Гараж)
- type_ob_id — задать только один тип предложения (по умолчанию не используется)
- type_realty_id — задать только один тип недвижимости (по умолчанию не используется)
- region_id — задать только один тип недвижимости (только для файла parser_region.php)
Если задан (передан) флаг "перемешивание" элементы массивов идентификаторов типов предложений и типов недвижимости перемещаются в случайном порядке.
Краткое описание работы
Программа-парсер эмитирует работу пользователя сайта dom.ria.ua загружая страницы поиска вида
http://dom.ria.ua/?target=search&type_realty_id=2&type_ob_id=2&obl_id=1&city_id=1&area_id=15105
либо http://dom.ria.ua/?target=search&type_realty_id=2&type_ob_id=2&obl_id=1&city_id=1.
Параметры поиска передаются в URL.
Ограничение выводимых на странице объявлений — 40 (может быть задано 10, 20, 30, 40). Если на странице присутствует ссылка на следующую
страницу загружается страница http://dom.ria.ua/?target=search&type_realty_id=2&type_ob_id=2&obl_id=1&city_id=1&area_id=15105&page=1,
за ней http://dom.ria.ua/?target=search&type_realty_id=2&type_ob_id=2&obl_id=1&city_id=1&area_id=15105&page=2
и т.д. пока на странице не будет ссылки на следующую либо если с даты подачи последнего на странице поиска объявления прошел больший интервал нежели заданное ограничение — time_limit (по умолчанию 10 дней).
Для каждой загруженной страницы поиска парсер обнаруживает ссылки на страницы объявлений вида http://dom.ria.ua/realty-2023904.html и загружает их. Данные о каждом объявлении записываются в XML-файл.
Парсер может работать в двух режимах:
- Передавать идентификаторы районов (area_id) при поиске — так работает parser_slando.php и parser_kiev.php
- Не передавать идентификаторы районов (area_id) при поиске — так работает parser_region.php
При втором способе находятся все объявления, но идентификатор района/поселка (если указан) сложнее определить.
Парсер создает временный XML файл — slando_realty.xml, следующей структуры:
<adverts>
<advert>
<realty_id>2135239</realty_id>
<type_ob_id>1</type_ob_id>
<type_realty_id>1</type_realty_id>
<obl_id>25</obl_id>
<city_id>536</city_id>
<area_id/>
<street>Головна</street>
<settleOther>Коровия</settleOther>
<price>360000</price>
<currency>$</currency>
<priceFor>за все</priceFor>
<flat>20</flat>
<floor>1</floor>
<floors>4</floors>
<sqTotal>1200.00 кв. м.</sqTotal>
<description>
Будинок розміщенний, біля кільця в с. Коровія, і виходить на головну трасу Чернівці-Порубне. Він складається з цоколя, в якому розміщенні дві сауни з басейном, винний підвал. На першому поверсі розміщенна велика зала, туалети, електрощитова, кухня, а також господарські приміщення. На другому поверсі розміщенна велика тренажерна зала, а також кімнати різноманітного цільового призначення. На 3 поверсі(мансарді) розміщенно 7 окремих спалень з санузлами. ВИконано електромонтажні та протипожежні роботи. Передбачено встановлення 21 кондиціонера, 11 камер спостереження та вентиляційне забезпечення. <br />Будинок можливо перевести під комерціну діяльність. <br /><br />Посередникам не турбувати.<br /><br />тел. (050)2400653
</description>
<info_main>
окна: металопластик; состояние: нужен ремонт; дом: кирпичный; пол: стяжка;
</info_main>
<info_add>
в квартире есть: телефон, интернет, сигнализация; во дворе есть: колодец; в доме есть: басеин;
</info_add>
<contact>Михайло</contact>
<phone>(050) 240-06-53</phone>
<date>2010-07-15</date>
<photos>
http://img.ria.ua/photos/dom/photo/346/34604/3460439/3460439f.jpg,http://img.ria.ua/photos/dom/photo/346/34604/3460436/3460436f.jpg,http://img.ria.ua/photos/dom/photo/346/34604/3460440/3460440f.jpg,http://img.ria.ua/photos/dom/photo/346/34604/3460441/3460441f.jpg
</photos>
</advert>
<advert>
<realty_id>1940847</realty_id>
<type_ob_id>1</type_ob_id>
<type_realty_id>1</type_realty_id>
<obl_id>25</obl_id>
<city_id>537</city_id>
<area_id/>
<street>Кобилянська</street>
<settleOther>Кострижовка</settleOther>
<price>14000</price>
<currency>$</currency>
<priceFor>за все</priceFor>
<flat>2</flat>
<floor>2</floor>
<floors>2</floors>
<sqTotal>47.30 кв. м.</sqTotal>
<info_main>
окна: двойные стекла; стены: побелка; пол: доска; отопление: газовый котел; состояние: удовлетворительное; дом: кирпичный; балкон/лоджия: пристройка;
</info_main>
<info_add>
в квартире есть: счетчики; рядом есть: детсад, школа, супермаркет, парк, речка/озеро, лес; Статус недвижимости: Личная;
</info_add>
<contact>agent007</contact>
<phone>(095) 157-89-90</phone>
<phone2>(050) 014-19-05</phone2>
<date>2010-05-20</date>
</advert>
...
</adverts>
Описание формата XML файла
Все данные файла заключены в тэг adverts. Данные о каждом объявлениии находятся в тэге advert. Тэг advert в свою очередь содержит такие теги: realty_id, type_ob_id, type_realty_id, obl_id, city_id, area_id, street, price, currency, priceFor, contact, phone, date(обязательные — всегда присутствуют), flat, floor, floors, sqTotal, sqLiving, sqKitchen, sqLand, description, info_main, info_add, phone2, photos, lat, lng (дополнительные — теги могут отсутствовать).
Тэг realty_id содержит идентификатор объекта на сайте, однозначно определяющий ссылку на объект вида http://dom.ria.ua/realty-2214842.html
Тэг type_ob_id содержит идентификатор типа предложения (1 - Продажа, 2 - Аренда)
Тэг type_realty_id содержит идентификатор типа недвижимости (1 - Квартира, 2 - Дом, дача, 3 - Офис, 4 - Участок, 5 - Коммерческая недвижимость, 6 - Курортная недвижимость, 7 - Гараж)
Тэг obl_id содержит идентификатор области
Тэг city_id содержит идентификатор города
Тэг area_id содержит идентификатор района
Тэг street содержит название улицы возможно с номером дома или какой-нибудь сопроводительной информацией
Тэг price содержит цену объекта
Тэг currency содержит наименование валюты для цены ($ - доллар США, грн. - украинская гривна)
Тэг priceFor содержит
Тэг flat содержит количество комнат объекта
Тэг floor содержит этаж на котором находится объект
Тэг floors содержит количество этажей дома, в котором находится объект (для квартир) или количество этажей объекта (для домов)
Тэг sqTotal содержит значение общей площади
Тэг sqLiving содержит значение жилой площади
Тэг sqKitchen содержит значение площади кухни
Тэг sqLand содержит значение площади участка
Тэг description содержит описание объекта
Тэг info_main содержит основную информацию описательного характера
Тэг info_add содержит дополнительную инормацию описательного характера
Тэг contact содержит имя продавца либо название агенства недвижимости
Тэг phone содержит основной телефон продавца
Тэг phone2 содержит дополнительные контактные телефоны продавца, перечисленные через запятую
Тэг date содержит дату подачи объявления
Тэг photos содержит ссылки на изображения, перечисленные через запятую
Тэг lat содержит значение широты объекта на карте
Тэг lng содержит значение долготы объекта на карте
Сохранение данных
После создания XML файла необходимо сохраненить объявления. Для этого используется файл import_slando.php, записывающий объявления в базу данных и переносящий файл slando_realty.xml в архив (с добавлением к имени XML-файла даты запуска файла import_slando.php). Для сопоставления рубрик import_slando.php использует таблицу slando_rubric базы данных. Для географического сопоставления используются таблицы slando_obl, slando_city, slando_area, для определения региона (области), города, района/пригорода объекта соответственно. Кодировка файла — UTF-8.
Приобретение парсера (350 грн.)
По вопросам приобретения и настройки программы парсера обращаться:
- Тел.: (095)590-49-91, Александр
- E-mail: evrth2me@gmail.com
