В качестве одного из источников сделок в amoCRM может быть расширение для браузера Google Chrome – парсер сайтов. С любого сайта можно получать заявки, предварительно настроив парсер вручную или через пресет. Настройка вручную не всегда позволяет выбрать только нужные данные, поэтому в данной статье рассмотрим работу с парсером через пресеты.
Для создания собственного пресета достаточно будет знаний работы CSS-селекторов. В рамках домена сайта может работать только один пресет. Пресет представляет собой JSON-файл следующего содержания:
{
"version": 1,
"fields": [
{
"clicks": [
{
"selector": ".selector-to-open-some-modal",
"wait_selector": ".some-modal-appears-after-click",
"timeout": 500
}
],
"title": "Бюджет",
"code": "price",
"type": "lead_budget",
"selector": ".selector-to-get-the-budget",
"value_type": "text",
"value_cleaner": ["[^\\d]+"]
}
]
}
Ключ version заложен для будущих версий и сейчас не несёт смысловой нагрузки. Самый важный параметр здесь это fields – массив полей доступных для парсинга. Каждое значение элемента fields имеет следующие обязательные параметры:
- title – человеко-понятное название поля, чтобы клиент понял в какое поле аккаунта ему настроить соответствие
- code – уникальный идентификатор поля в рамках пресета
- selector – CSS-селектор элемента на странице
- type – тип поля, необходим для первоначальной автоматической подстановки соответствия с полями из аккаунта клиента (например, для поля numeric парсер автоматически будет искать первое попавшееся числовое поле в аккаунте клиента, но клиент его может самостоятельно переназначить на другое поле при настройке)
- lead_name – название сделки
- lead_budget – бюджет сделки
- lead_note – примечание сделки
- contact_name – имя контакта
- position – должность контакта
- phone – телефон
- email – email
- company_name – название компании
- text – текстовое поле доп. полей
- numeric – число
- select – выпадающий список
- multiselect – множественный выбор
- date – дата
- date_time – дата и время
- url – URL
- textarea – текстовая область
- radiobutton – переключатель
- streetaddress – короткий адрес
Следующие поля не являются обязательными, но предоставляют некоторые дополнительные возможности:
- value_type – может быть либо text, либо html, если text, то будет только текстовое значение, если html, то вместе с html-тегами (если вдруг значение нужно взять из какого-то атрибута)
- value_cleaner – регулярное выражение для очистки полученного значения, например, оставить только цифры. Может быть массивом, например, убрать начало строки до какой-то подстроки и потом удалить еще какую-то подстроку
- clicks – массив кликов перед парсингом, если для получения значения поля необходимо сделать какие-то клики по элементам на странице – их можно описать в этом массиве. Синтаксис каждого поля:
- selector – CSS-селектор элемента, по которому нужно кликнуть
- wait_selector – CSS-селектор элемента, который нужно дождаться, прежде чем сделать следующий клик из данного массива
- timeout – таймаут для wait_selector, если он так и не появился на странице, либо (если вы не указывали wait_selector) таймаут до следующего клика
Скачать примеры пресетов. В архиве примеры пресетов для парсинга:
Авто.ру (auto.ru)
HeadHunter (hh.ru)