Парсинг Яндекс.Карт: как собрать организации и контакты
Яндекс.Карты — одна из самых полных открытых баз организаций в России: название, адрес, телефон, сайт, часы работы и рейтинг. Ниже разберём, что из этого можно собрать автоматически, какие есть способы и на чём обычно спотыкается сбор.
Что можно собрать с Яндекс.Карт и чего там нет
Карточка организации — это структурированные данные, которые компания или Яндекс заполнили публично. Обычно в выгрузку попадают:
- название и рубрики (например, «стоматология», «автосервис»);
- адрес и координаты;
- телефоны, сайт, ссылки на соцсети и мессенджеры;
- часы работы;
- рейтинг и число отзывов;
- отметка о закрытии, если организация больше не работает.
Чего в карточках обычно нет — так это электронной почты и имён ответственных лиц. Почту, если она нужна, ищут вторым шагом: заходят на сайт из карточки и забирают адрес со страницы контактов. Это отдельный этап, и заполняется он не у всех: у многих небольших компаний сайта нет вовсе.
Ещё учтите, что карточки заполнены неравномерно. У сетевой клиники будет всё, у мастерской на окраине — только адрес и телефон. Поэтому объём выгрузки удобнее оценивать не по числу строк, а по числу строк с нужным полем.
Способы сбора: вручную, сервисом, через API или своим сборщиком
Вручную. Подходит, если нужно несколько десятков организаций в одном районе. Медленно, зато без технических рисков.
Готовые сервисы-парсеры. Задаёте рубрику и город и получаете таблицу. Их удобно брать для разовой задачи, но формат выгрузки и полнота данных зависят от сервиса, а при изменениях на стороне Яндекса такой сервис может какое-то время отдавать неполные данные.
Официальный API. У Яндекса есть платный поиск по организациям через API. Это легальный путь, но условия использования ограничивают, как хранить и показывать результаты. Перед тем как строить на нём базу, прочитайте актуальные условия.
Свой сборщик. Вариант для регулярных задач или нестандартных полей. Сборщик открывает Карты так же, как человек, проходит по выдаче и карточкам и складывает данные в таблицу. Мы собираем данные настоящим браузером с российского адреса: так меньше блокировок и капч, чем при прямых запросах к сайту.
Где сбор обычно ломается
Большинство проблем возникает не со скоростью, а с полнотой и чистотой данных:
- Ограниченная выдача. По одному запросу на весь город Карты показывают не все организации. Поэтому город делят на участки карты и перебирают рубрики, а потом объединяют результаты.
- Дубли. Одна и та же организация попадает в несколько рубрик и соседних участков, у сетей бывают десятки филиалов с одним телефоном. Без удаления дублей база раздувается.
- Защита от роботов. Слишком частые однотипные запросы приводят к капче или пустым ответам. Сборщик должен работать в темпе живого пользователя и уметь продолжать с места остановки.
- Устаревшие данные. Организации закрываются и меняют телефоны. Выгрузка полугодовой давности частично уже неверна, поэтому для работы базу нужно периодически обновлять.
Отдельно о разметке: Яндекс время от времени меняет вёрстку страниц. Сборщик, который никто не сопровождает, после такого молча собирает пустые поля. Поэтому нужна проверка: если доля заполненных телефонов резко упала, что-то сломалось.
Закон и что делать с базой дальше
Данные организаций — название, адрес, рабочий телефон — публичны. Но пользовательское соглашение Яндекса ограничивает автоматический сбор, и это стоит учитывать. Если в данные попадают персональные данные (например, телефон и имя частного мастера), на них распространяется 152-ФЗ. Холодные рассылки по собранным адресам регулирует закон о рекламе: для рекламных писем нужно согласие получателя. Безопаснее использовать базу для анализа рынка, поиска партнёров и адресных обращений, а не для массовых рассылок.
Сама выгрузка — полдела. Обычно её доводят до рабочего состояния так:
- сводят в таблицу с едиными форматами телефонов и адресов;
- загружают в CRM или 1С, чтобы менеджеры работали с ней сразу;
- настраивают регулярное обновление на сервере, без ручного запуска;
- подключают телеграм-бота, который сообщает о новых организациях в нужной рубрике или о закрытии уже известных.
Последний пункт полезен, когда важна не разовая база, а изменения на рынке: открылся конкурент рядом, сменился телефон у партнёра, закрылась точка в вашем районе.
Соберём под ваш случай и покажем на ваших данных.
Сбор данных →