Приложение "Yandex.Realty Parser": различия между версиями

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
Строка 42: Строка 42:
  
 
Определяются названия страны, региона, города, района города, улицы и номер дома. Определенные значения размещаются в поля модели объекта: country_id, region_id, city_id, district_id, street_id, number. Изменить поля-приемщики данных нельзя.<br />
 
Определяются названия страны, региона, города, района города, улицы и номер дома. Определенные значения размещаются в поля модели объекта: country_id, region_id, city_id, district_id, street_id, number. Изменить поля-приемщики данных нельзя.<br />
 +
 +
Так как формат ЯН допускает "пропадание" частей географической цепочки для городов Москва и СПБ, то разобрать географию таких объектов для сайте, где указана зависимость города от региона не удастся. Для исправления этой ситуации служат две настройки данного приложения:
 +
 +
<pre>
 +
ID региона для города Москва (apps.yandexrealty_parser.moscow_region_id)
 +
ID региона для города СПБ (apps.yandexrealty_parser.spb_region_id)
 +
</pre>
 +
 +
Данные две настройки позволяют указать в числовом виде идентификатор региона в котором следует искать названия городов для г. Москва и для г. СПБ, так как определить регион из данных XML невозможно. Установка этих значений создает ситуацию, имитирующую случай, что регион удалось определить и цепочка не разорвана.
  
 
== Логгирование ==
 
== Логгирование ==

Версия 20:54, 25 сентября 2016

Приложение для реализации импорта объявлений на сайт из фидов составленных по формату Яндекс.Недвижимость

Требования

Приложение требует дополнения модели полем url (тип safe_string) для хранения признака идентичности, если не используется настройка apps.yandexrealty_parser.use_internalids, предписывающая сличать объекты по внешнему ID

Парсинг географии

При парсинге разбираются следующие параметры расположения - страна, регион, район области, город, район города, улица, номер дома.

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

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

При связанном режиме НЕ БУДУТ ДОБАВЛЯТЬСЯ те географические уровни, для которых не удалось определить родительский объект, если он требуется. Например, если в выгрузке пропущено указание региона, а указаны только страна и город, но в модели объявления указаны связи вида Страна - Регион - Город, то для загружаемого объявления будет указана только страна, так как определить и добавить город не будет возможности из-за отсуствия промежуточного звена Регион.

По умолчанию используется режим несвязанного добавления географии.

Несвязанный режим

География парсится по уровням. Каждый уровень раскладывается в соотв. таблицу географический сущностей и в соотв. поле в модели объекта без учета связок с другими уровнями. Поиск подходящего существующего объекта географии производится по текстовому названию. Если поиск не даст результата и вставка данного уровня не запрещена, то будет добавлено новая единица в таблице данного уровня.

Определяются названия страны, региона, города, района города, улицы и номер дома. Определенные значения размещаются в поля модели объекта: country_id, region_id, city_id, district_id, street_id, number. Изменить поля-приемщики данных нельзя.

Стандартный связанный режим

География парсится по уровням. Каждый уровень раскладывается в соотв. таблицу географический сущностей и в соотв. поле в модели объекта с учетом связок с другими уровнями обусловленными настройками:

Ajax - обновление региона (apps.realty.ajax_region_refresh)
Ajax - обновление города (apps.realty.ajax_city_refresh)
Ajax - обновление района (apps.realty.ajax_district_refresh)
Ajax - обновление метро (apps.realty.ajax_metro_refresh)
Ajax - обновление улицы (apps.realty.ajax_street_refresh)
link_metro_to_district
link_street_to_city

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

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

Определяются названия страны, региона, города, района города, улицы и номер дома. Определенные значения размещаются в поля модели объекта: country_id, region_id, city_id, district_id, street_id, number. Изменить поля-приемщики данных нельзя.

Так как формат ЯН допускает "пропадание" частей географической цепочки для городов Москва и СПБ, то разобрать географию таких объектов для сайте, где указана зависимость города от региона не удастся. Для исправления этой ситуации служат две настройки данного приложения:

ID региона для города Москва (apps.yandexrealty_parser.moscow_region_id)
ID региона для города СПБ (apps.yandexrealty_parser.spb_region_id)

Данные две настройки позволяют указать в числовом виде идентификатор региона в котором следует искать названия городов для г. Москва и для г. СПБ, так как определить регион из данных XML невозможно. Установка этих значений создает ситуацию, имитирующую случай, что регион удалось определить и цепочка не разорвана.

Логгирование

Приложение ведет запись логов эскпорта в файлы
/cache/cianexporter_flatssell.last.log.xml - по продаже квартир
/cache/cianexporter_flatsrent.last.log.xml - по аренде квартир
/cache/cianexporter_lots.last.log.xml - по земельным участкам
/cache/cianexporter_nonresidential.last.log.xml - по зарубежной


Настройка экспорт

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

Отправка данных в CIAN.ru

Перед отправкой данных вам нужно проверить источник ваших данных с помощью специального валидатора http://www.cian.ru/nd/validator/

Нужно проверить каждый тип выгрузки

Аренда квартир и комнат http://ваш_сайт/cianexport/rent/
Продажа квартир и комнат http://ваш_сайт/cianexport/sell/
Аренда и продажа нежилых помещений http://ваш_сайт/cianexport/commerce/
Аренда и продажа домов и земельных участков http://ваш_сайт/cianexport/lots/

Если будут ошибки при валидации, то вам нужно поправить соответствующие данные в объявлениях и заново проверить источник.
После этого вы можете написать в службу тех.поддержки import@cian.ru, указать свой ID в личном кабинете cian.ru и адреса источников данных.


Пример письма: Прошу добавить выгрузку объявлений в формате XML
ID аккаунта 1111111
Аренда квартир и комнат http://ваш_сайт/cianexport/rent/
Продажа квартир и комнат http://ваш_сайт/cianexport/sell/
Аренда и продажа нежилых помещений http://ваш_сайт/cianexport/commerce/
Аренда и продажа домов и земельных участков http://ваш_сайт/cianexport/lots/
Отчеты отправлять сюда, пожалуйста
my@site.ru и manager@site.ru

=== ВАЖНОЕ ЗАМЕЧАНИЕ!  ===

У вас должен быть активировать тариф "Профессионал" в cian.ru, для того чтобы вашу выгрузку начали принимать.

Настройки

apps.cianexporter.text (Заменитель текста объявления) - укажите текст, который будет выводиться в выгрузке в поле описания

apps.cianexporter.paid_ads (Платная выгрузка объявлений) - использовать приложение Биллинг для снятия сумм за выгрузку объявления со счета пользователя

apps.cianexporter.sell (Поле:Значение отвечающие за признак продажи) - укажите системное имя поля и значение соответствующие продаже. Напр. optype:2

apps.cianexporter.rent (Поле:Значение отвечающие за признак аренды) - укажите системное имя поля и значение соответствующие аренде. Напр. optype:1

apps.cianexporter.region_id (ID административного региона, если известен) - укажите cian-идентификатор региона, если регион выгружаемых объявлений единый

apps.cianexporter.default_currency (Код валюты цен (EUR/USD/RUB) для моновалютных сайтов) - укажите кода валюты цен объявлений на сайте

apps.cianexporter.default_saletype (Тип продажи по умолчанию (F – свободная продажа, A – альтернатива)) - укажите тип продажи для всех объявлений по продаже

apps.cianexporter.max_days (Возраст в днях выгружаемых объявлений (0 - игнорировать)) - укажите возраст объявлений, которые будут допущены к выгрузке, в днях.

apps.cianexporter.use_days_limitation (Использовать ограничение доступности выгрузки по дням) - включает режим блокировки отдачи выгрузки по определенным дням недели

apps.cianexporter.lots_days (Дни доступности выгрузки участков) - укажите дни недели доступности выгрузки объявлений "Аренда и продажа домов и земельных участков" в виде списка чисел от 1 до 7 через запятую (1-понедельник, 7-воскресенье)

apps.cianexporter.commerce_days (Дни доступности выгрузки коммерческой) - укажите дни недели доступности выгрузки объявлений "Аренда и продажа нежилых помещений" в виде списка чисел от 1 до 7 через запятую (1-понедельник, 7-воскресенье)

apps.cianexporter.sale_days (Дни доступности выгрузки продажи квартир) - укажите дни недели доступности выгрузки объявлений "Продажа квартир и комнат" в виде списка чисел от 1 до 7 через запятую (1-понедельник, 7-воскресенье)

apps.cianexporter.rent_days (Дни доступности выгрузки аренды квартир) - укажите дни недели доступности выгрузки объявлений "Аренда квартир и комнат" в виде списка чисел от 1 до 7 через запятую (1-понедельник, 7-воскресенье)

apps.cianexporter.use_billing_vipstatus_for_premium (Использовать VIP статус при включенном биллинге для выгрузки премиум-позиций) - включенная настройка предписывает устанавливать для объявления статус premium если используется биллинг и значение VIP-статуса на сайте является активным (эта настройка переопределяется настройкой apps.cianexporter.prom_by_billing)

apps.cianexporter.total_square_flat (Системное имя общей площади для квартир и комнат) - укажите системное имя поля содержащего значение общей площади для квартир и комнат

apps.cianexporter.total_square_commercial (Системное имя общей площади для нежилой\коммерческой) - укажите системное имя поля содержащего значение общей площади для квартир и комнат

apps.cianexporter.total_square_houses (Системное имя общей площади для домов) - укажите системное имя поля содержащего значение общей площади для домов

apps.cianexporter.total_square_lots (Системное имя общей площади для участков) - укажите системное имя поля содержащего значение общей площади для участков

apps.cianexporter.total_square_lots_m (Единица измерения общей площади для участков (1-м2, 2-сот)) - укажите единицу измерения значения общей площади для участков

apps.cianexporter.total_square_lh_lots (Системное имя общей площади участков для участков с домами) - укажите системное имя поля содержащего значение общей площади для участков при экспорте участков с домами

apps.cianexporter.total_square_lh_lots_m (Единица измерения общей площади участков для участков с домами (1-м2, 2-сот)) - укажите единицу измерения значения общей площади для участков при экспорте участков с домами

apps.cianexporter.total_square_lh_house (Системное имя общей площади дома для участков с домами) - укажите системное имя поля содержащего значение общей площади для дома при экспорте участков с домами

apps.cianexporter.newbuilds_ch (Системное имя поля-чекбокса для обозначения новостройки) - укажите системное имя поля типа checkbox содержащее признак расположения в новостройке

apps.cianexporter.unlim (Выгружать в ЦИАН все объявления) - указывает отправлять на выгрузку все активные объявления без фильтрации по признаку "выгружать в ЦИАН"

apps.cianexporter.ceiling_f (Системное имя поля со значением высоты потолков) - укажите системное имя поля содержащего значение высоты потолков

apps.cianexporter.year_f (Системное имя поля со значением года постройки здания) - укажите системное имя поля содержащего значение года постройки здания

apps.cianexporter.prom_by_billing (Устанавливать статусы продвижения в зависимости от статусов биллинга) - настройка предписывает определять статусы продвижения объявления на основании статусов биллинга на сайте. По-умолчанию для определения premium в ЦИАН используется значение статуса Премиум, для top - VIP, для highlight - Выделено. Эта настройка отменяет действие настройки apps.cianexporter.use_billing_vipstatus_for_premium. Соответствия значений биллинг-статусов на сайте значениям статусов продвижения в ЦИАН можно изменить, указав системные имена в настройках apps.cianexporter.prom_highlight_mark, apps.cianexporter.prom_premium_mark, apps.cianexporter.prom_top_mark соответствующих значений

apps.cianexporter.prom_highlight_mark (Системное имя поля установки выделения цветом) - настройка служит для указания значения биллинг-статуса, при включенной настройке apps.cianexporter.prom_by_billing, соответствующего highlight-статусу продвижения ЦИАН. При выключенной настройке apps.cianexporter.prom_by_billing в этом поле можно указать системное имя поля типа checkbox отмеченное значение которого будет означать наличие highlight-статуса ЦИАН

apps.cianexporter.prom_premium_mark (Системное имя поля установки премиум-объявлений) - настройка служит для указания значения биллинг-статуса, при включенной настройке apps.cianexporter.prom_by_billing, соответствующего premium-статусу продвижения ЦИАН. При выключенной настройке apps.cianexporter.prom_by_billing в этом поле можно указать системное имя поля типа checkbox отмеченное значение которого будет означать наличие premium-статуса ЦИАН

apps.cianexporter.prom_top_mark (Системное имя поля установки Топ 3 объявлений) - настройка служит для указания значения биллинг-статуса, при включенной настройке apps.cianexporter.prom_by_billing, соответствующего top-статусу продвижения ЦИАН. При выключенной настройке apps.cianexporter.prom_by_billing в этом поле можно указать системное имя поля типа checkbox отмеченное значение которого будет означать наличие top-статуса ЦИАН

apps.cianexporter.inc_districts_to_locality (Добавлять район к locality) - включение этой настройки позволяет добавить в тег locality содержимое поля district_id в виде имени района области. Данное включение не срабатывает при нахождении объекта в регионах Москва и Санкт-Петербург

Логи

С версии 1.5.0 приложение хранит свои логи в папке cache/ в виде xml-файлов. Файлы логов являются ненакапливаемыми - после каждой выгрузки предыдущий лог заменяется новым.

Логи выгрузки "Аренда квартир и комнат" хранятся в файле cianexporter_flatsrent.last.log.xml

Логи выгрузки "Продажа квартир и комнат" хранятся в файле cianexporter_flatssell.last.log.xml

Логи выгрузки "Аренда и продажа нежилых помещений" хранятся в файле cianexporter_nonresidential.last.log.xml

Логи выгрузки "Аренда и продажа домов и земельных участков" хранятся в файле cianexporter_lots.last.log.xml