Как спарсить выдачу Яндекс.Карт?
Подскажите пожалуйста, как можно спарсить данные со страницы организации в Яндекс.Картах? В частности, нужно взять данные о рейтинге организации и количестве отзывов у неё. Знаю, что есть некое API по ссылке https://yandex.ru/maps/api/business/fetchReviews (нашел его среди вопросов на этом же портале), но это не совсем то. Там выдаются сами отзывы, а нужно то, что написал выше.
Есть одна проблема — Яндекс рендерит элементы на странице постепенно. Когда парсишь её через Simple HTML DOM, она получается пустой. Как это можно обойти? Ведь наверняка выполняется какой-то скрипт, который обращается к ссылке и получает оттуда все эти данные. Не знаю, как с этим справиться.
- Вопрос задан более двух лет назад
- 4268 просмотров
- Вконтакте

Та еще задача: корректно извлекать данные рейтинга организации. Задал вопрос поддержке Яндекса, как это сделать не нарушая правил платформы. Жду ответ и опубликую здесь.
А пока, есть простое решение, извлекать данные посредством PHP шоркода:
Получаем рейтинг в числовом значении и вставляем полученный шорткод куда нужно на сайте: [rating].
P.S.: Только функцию нужно запускать как можно редко;) дабы избежать нагрузки, желательно через периодическое обновление кэша, например, посредством curl закрывая соединение curl_close(); или каждый раз вызывая форму запроса данных в ручную.
Здесь, предлагается одно из решений посредством curl.
- Вконтакте




Выкладываю рабочий скрипт создания шорткода (WordPress) для рейтинга организации.
Важно: работает на библиотеке phpQuery
Шорткод можно создать и для чистого PHP. Здесь есть вариант BBCode.
Скрипт выведет в шорткоде значение рейтинга организации: [curlshot]

НИКАК.
ВЫ задрали уже любители дармовщинки.
Из-за вас сервисами яндекса уже невозможно пользоваться — он все время показывает капчу, которую хрен прочтешь.
Причем яндекс и так дает на халяву, через апи. Но нет — мы нос воротим, мы лучше будем мелочь по карманам тырить, и гадить всем вокруг.
Попробуй хоть раз в жизни сделать что-то своё, а не пытаться тырить чужое.
- Вконтакте


Что за бред и идиотские суждения с ровного места?
Вроде вежливо и по-человечески спросил как реализовать определенную функцию, которую сам не могу сделать. Мне нужно банально показывать на сайте автосервиса его рейтинг на Яндексе и ссылку на страницу с отзывами. Какая, нахрен, «мелочь», «гадить всем вокруг» и «тырить чужое»? Вы о чём вообще?
Почитал вопросы здесь же на портале — не нашел инфы об этом. Почитал документацию Яндекса — снова не нашел, как это сделать. Пришел сюда и попросил помощи.
Если конкретно вас жизнь чем-то обидела, очень жаль. Вместо того, чтобы изливать всё, что у вас накопилось, могли бы просто сказать, что на данный момент такой возможности нет.

Не надо строить из себя наивную дурочку. Всё ты прекрасно понимаешь.
«Мне нужно банально у себя дома кушать картошечку, которую сосед сажал, поливал, собирал, свой труд вкладывал. Я вежливо спросил, как её аккуратно поиметь у себя на столе».
«Как отобразить» — это один вопрос. «Как спарсить, вопреки условиям использования сервиса» — совсем другой.





— а что тут за кража?
Ну нет у нас централизованного места, где можно официально взять эти данные — вот и собирают их по развалам интернета.
Это же не спарсить объявления с авито и на своем портале разместить. Тут нужны конкретные данные от социума — социальная оценка организации от народа.
Не понимаю что под вами так подгорает стул.


FanatPHP, яндекс капчу повесит и без чужих посягательств. На будущее.
А вы видать во всем кражу видите?
На меня нападать не не нужно и свое хамство оставьте родителям.


Вы там то про картошку, то про айфоны невпопад.
Просто не нужно нападать не разобравшись в целях получения данных. Или вы в магазине ножей тоже истерите — «а ими убивают! Вас в тюрьму надо закрывать!» Так получается.
Вообще странно видеть ваши доводы про «Я пишу». Не пишите. Никто и не заметит. А то что выложено в инет — уже скачают кому надо. И натравят на ваш текст AI. Только вот если обучаться по вашим текстам — выйдет крайне недружелюбное зло.
А про яндекс — нашли кого защищать. Эта корпорация нагнет еще и вас и ваших потомков.
Нашлась тут Грета интернета



FanatPHP, Ваши опасения и пожелания полностью оправданы. Воровать не хорошо. Давайте же разберемся, что есть воровство и кто скорее прав Клиент или Сервис.
Мы, как говорится одно дело делаем:) и весь интернет заточен под целевые потребности пользователей и, если для нужд сайта компании, нужны его же собственные данные из открытых источников — это не является кражей и воровством. Мало того, согласно новой политике GDPR пользователь у любого сервиса может запросить экспорт своих данных или потребовать их удаление. Может предъявить, если Сервис его не услышит.
На сегодняшний день, у клиентов возникла потребность структуировать свои данные с разных источников: гугл, яндекс, трипадвизор, соц-сети и так дальше. Никто не собирается взламывать и нагружать эти системы, парсить данные из закрытых разделов, проникать, переписывать их код из разных браузеров через JS. И нет никакого криминала в том, что компания хочет получить свои же данные из открытых источников.
Права на свои данные принадлежат Компании, а не сервису. Можно тогда сервисы де-юре наказывать и штрафовать за то, что они извлекают без разрешения, данные о местоположении, адресе, бренде и так далее. И думаю, подобные разборки (кому принадлежат данные) еще заденет интернет в ближайшие годы, когда GDPR начнет внедряться и у нас в РФ.
В данном случае, разработчики решают потребности клиентов доступными способами и конечно, по всем правилам экологии программирования. Главное правило «не навреди» работает не только в медицине.
Я сделал запрос в Яндекс о получении рейтинга Компаний для своих городских проектов. В Яндексе подтвердили, что такого APi у них пока нет, но мое пожелание отправлено в отдел разработки и возможно скоро появится. Ждем обновлений.


Алексей Горбунов, спасибо за такое подробнее разъяснение. Честно говоря, даже и не задумывался о том, что все данные в Яндекс.Справочнике и самом поиске юридически сервису не принадлежат и так же взяты им из других открытых источников. Показывают в своей выдаче те же авторские фотографии с сайтов компаний, например.
Да и действительно, они сами эксплуатируют их так, как им вздумается, и прекрасно зарабатывают на этом. Даже банально — человек ищет информацию о компании, а ему потом показывается таргетированная реклама других услуг из этой же сферы. Хорошая схема заработка получается. Так что грань о законности тех или иных действий, как со стороны частных программистов, так и со стороны крупных компаний, оказывается очень тонкая.
Странно, что получать информацию в обход API они всё же не разрешают, хотя мы и правда не вредим никому. В общем, ждем пока официально завезут такую возможность. А пока — пробуем делать это вручную.

Никита Корнилов, слово «парсить» оскорбляет чувства разработчиков:)) и звучит как крамола в отношении пользовательского соглашения Яндекс. Давай, это слово оставим для хакеров с даркнета, а в профсоюзе будем употреблять такие фразы как: извлечь данные из открытых источников:)
Ведь и в правду, представлю ситуацию как фрилансеры заходят на десятки сервисов и тысячи компаний, чтобы ручками сверить и обновить данные. Пусть лучше в кабинете удаленщика просто жмут кнопку запросить данные и применить.
И это, я считаю, не есть воровство и криминал, ведь данные извлекаются из открытых источников для публикации в открытом же доступе с активной ссылкой на первоисточник. Это как фреймом открыть видео с YOU tube. Не вижу ничего в этом плохого, напротив, сплошные плюсы и Яндексу дополнительный трафик + популяризация платформы в лице владельцев компаний городов.

Никита Корнилов, суд США полностью легализовал скрапинг сайтов и запретил ему технически препятствовать!
Во как! Если какой-то сайт принимает меры на защиту от скрапинга открытых данных — это злостное вмешательство в контракт. Так что юридически, скрапинг открытых данных здравое дело. И в России похоже судебные иски еще впереди.
Единственное, что парсить нужно как браузер.
Суд не только легализовал эту практику, но запретил мешать конкурентам снимать информацию с вашего сайта в автоматическом режиме, если сайт является общедоступным. Суд подтвердил понятную логику, что заход бота-скрапера юридически не отличается от захода браузера. В обоих случаях «пользователь» запрашивает открытые данные — и что-то делает с ними на своей стороне.
Сейчас многие владельцы сайтов пытаются поставить технические препоны конкурентам, которые полностью копируют их информацию, не защищённую копирайтом. Например, цены на билеты, товарные лоты, открытые профили пользователей и т. д.
Некоторые сайты считают эту информацию «своей», а скрапинг расценивают как «воровство». Юридически это не так, что теперь закреплено официально в США.
Парсер Яндекс-карт (справочника организаций)

Лучшие региональные справочники организаций были тщательно отобраны командой Яндекса, и данные из них отображаются на Яндекс-картах. Кроме того, многомиллионная аудитория Яндекса имеет возможность самостоятельно добавлять и актуализировать информацию о компаниях. Такое сочетание готовых справочников и пользовательских данных составляет серьезную конкуренцию ДубльГИСу (программа для которого здесь).
Преимущества справочника организаций Яндекса — более широкий охват территорий, большее количество телефонов, более высокая скорость сбора контактов (влияет и мощность серверов Яндекса, и особенности организации справочника).
Менее объемный рубрикатор (по сравнению с 2GIS) во многих случаях является преимуществом. Кроме краткого рубрикатора, есть и полный, на более чем 1000 рубрик.
Актуальность данных в 2GIS обеспечивается обзвоном организаций сотрудниками ДубльГис, в то время как актуальность справочника организаций Яндекс-Карт обеспечивается множественными поставщиками данных и пользователями Яндекса. Тот или иной подход в разных случаях может быть более полезным, однозначного победителя здесь нет.
Для работы с найденными контактами организаций вы можете делать так: зайти на сайт Яндекс-Карт, открыть справочник организаций, и последовательно открывать одну компанию за другой, выбирать подходящие, копировать их название и контактные данные в Excel, а затем уже делать свои пометки: «не дозвонился», «отправил предложение на email» и т.д. Это копирование с сайта в таблицу Excel занимает огромное количество времени!
Мы предлагаем вам другой подход : использовать программу — парсер организаций Яндекс-Карт, которая самостоятельно скопирует информацию об интересующих вас компаниях с сайта в Excel, и сэкономит ваши силы и время. Вы получите готовый к обработке список компаний, в котором можно делать примечания, отфильтровывать неинтересные компании и т.д.
Программа-парсер Яндекс-Карт по сбору данных об организациях будет полезна:
— менеджерам по продажам для поиска покупателей
— менеджерам по закупкам для поиска поставщиков
— маркетологам для изучения рынка
— руководителям компаний для поиска партнеров и клиентов
Предлагаемая нами программа-парсер организаций Яндекс-карт позволяет собирать следующую информацию:
- Название организации
- Рубрики/Отрасли/Категории организации
- Индекс/Страна/Регион/Район/Город/Улица/Дом в отдельных колонках
- Полный адрес
- Телефоны мобильные — для sms/Viber/WhatsApp-рассылки
- Телефоны остальные — для холодных звонков
- Факс
- Сайт
- Email с сайта компании(программа многопоточно просканирует сайт компании на заданную пользователем глубину)
- ИНН с сайта компании
- График работы
- Геоданные (координаты): широта и долгота
- ID и название филиальной сети
- Услуги(атрибуты) организации
- Ссылки на социальные сети (Facebook/Twitter/Instagram/Vkontakte/Youtube/Google+/Одноклассники)
- Ссылка на карточку компании на Яндекс-картах
- Все сайты и все телефоны в отдельных ячейках.
- Дополнительные данные — сделаем индивидуальную настройку выгрузки по запросу!
- Обратите внимание, парсер отзывов и фотографий — здесь.
Программа позволяет задать нужный участок на карте, одну или несколько категорий, и собрать все соответствующие данные нажатием одной кнопки . Например, можно отметить рубрику «парикмахерские», выбрать нужный регион, и собрать все парикмахерские из заданной области одной кнопкой!
Программа умеет работать с сервисом автоматического распознавания капчи для разгадки выдаваемых Яндексом картинок. Вам необходимо иметь аккаунт в этом сервисе для пользования парсером. Минимального баланса в 1$ обычно хватает на несколько месяцев использования антикапчи.
Парсер Яндекс.Карт умеет работать через прокси! Если в вашей корпоративной сети в настройках браузера нужно указывать какой-то прокси (нет прямого выхода в интернет) — программа сможет работать и у вас. Если ваш IP-адрес заблокируют, вы сможете с помощью прокси обойти блокировку. Для включения работы через прокси запишите параметры прокси в формате login:password@ip:port в файл proxy.txt в папке программы. Запустите выгрузку, программа напишет в окне логов, что начала использовать прокси.
После завершения работы программы файл с результатами автоматически открывается в Excel (если установлен MS Office) или Calc (если установлен OpenOffice). Файл имеет имя вида data***.csv . Результатом сбора являются такие файлы: пример файла с информацией о компаниях на Яндекс-Картах, выгруженной парсером.

Файл Excel с данными, собранными с Яндекс-Карт
Данные, собираемые программой, становятся доступны еще до завершения работы программы: сразу после скачивания информации об очередной организации данные записываются в файл выгрузки в папке программы.
Программа-парсер умеет синхронизировать список рубрик с сайтом Яндекс-Карт. Это означает, что программа не только умеет работать со всеми категориями рубрикатора, но и при появлении новых рубрик программа будет способна работать с новыми рубриками без необходимости обновления!
В отличие от парсера 2гис, список городов в парсере Яндекс-карт отсутствует (можно сказать, что он бесконечен) — вы можете выбрать любую область карты, которая вам нужна, и собрать данные с любого количества городов! Если заданная вами область будет слишком велика, программа автоматически разобьет её на несколько более мелких — настолько мелких, чтобы можно было собрать все организации.
Если не использовать разбиение области, собрать все организации невозможно.
Возьмем, к примеру, школы танцев Петербурга. Сайт обещает нам 1144 организации в рубрике:

Обещанное количество школ танцев Петербурга
Если зайти в рубрику и прокрутить список до конца (до появления надписи «добавьте организацию, если не нашли их»), окажется что в списке — только менее половины от обещеннаго количества. Можно скопировать список куда-то для подсчёта количества, а можно посмотреть в запросах браузера к сайту: после загрузки 500 организаций были запрошены следующие 25, и на этом загрузка списка закончилась:

Фактически показанное количество школ танцев Петербурга — менее половины
Однако, полностью доверять обещанному Яндекс-картами количеству не стоит, он может несколько завышать обещания по количеству организаций. К примеру, откроем Волоколамск и введём в поиск «Автошкола». Сайт обещает нам 3 организации:

Обещанное количество Автошкол Волоколамска — три
Если кликнуть по стрелочке, то окажется на самом деле, что автошкол всего две:

Фактически показанное количество Автошкол Волоколамска — две
Наш парсер выгружает все организации, которые фактически показывают Яндекс-карты.
Программа умеет приостанавливать свою работу, и продолжать её. Паузу можно включать вручную, а если отключится интернет — программа поставит себя на паузу автоматически. Если во время сбора на сайте возникнет ошибка, и программа не сможет получить данные — она поставит себя на паузу на некоторое время, затем автоматически проснется и сделает еще несколько попыток получить те же данные.
Два индикатора показывают ход выполнения работы. Синий показывает прогресс по рубрикам, зеленый индикатор показывает прогресс сбора данных текущего этапа работы.
Парсер яндекс-карт умеет работать в режиме получения списка новых организаций в базе. При запуске сбора парсер ищет файл skip.txt в своей папке, и загружает оттуда список ID организаций, которые не нужно загружать. Если Вы собрали какую-то рубрику некоторое время назад, возьмите из старого файла результатов первую колонку с числовыми ID организаций, и поместите этот список в файл skip.txt в папке программы. Запустите сбор той же рубрики, парсер пропустит все старые организации, и на выходе вы получите список только новых организаций заданной рубрики.
Скриншот программы для парсинга Яндекс-карт:

Что вы получаете, покупая у нас программу:
Богатый функционал для любых бизнес-задач
Возможность выгрузки по заданной ссылке на карту любого масштаба — по ссылке может быть три дома, а может вся страна
Возможность выгрузки по заданному списку ссылок в файле — например, там могут быть 37 ссылок на города присутствия Вашей компании
Список готовых ссылок на разные города и регионы — в комплекте с программой
Возможность выгрузки по произвольному списку запросов / ключевых слов
Возможность выгрузки по полному списку рубрик, упорядоченному по алфавиту
Возможность выгрузки по дереву рубрик, структурированному по тематикам
Запоминание отмеченных городов и рубрик при выходе из программы, и восстановление их при запуске. Запускайте несколько копий программы с разными профилями выгрузки из разных папок, в том числе одновременно!
Корректная обработка ошибок Яндекс-карт — программа поставит себя на паузу, пока на сайте идут работы, чтобы не пропустить ни одной компании
Корректная обработка ошибок подключения к сети — программа поставит себя на паузу, пока вы везете ноутбук из офиса домой, и продолжит сбор после приезда домой
Поддержка работы через прокси-сервер для адаптации к инфраструктуре вашей компании или для обхода блокировки
Корректная обработка ошибок подключения к сети — программа поставит себя на паузу, пока вы везете ноутбук из офиса домой
Возможность автоматического сбора ИНН с сайтов компаний
Возможность сбора адресов электронной почты email с сайтов компаний, в том числе с защищенных
Возможность задавать количество страниц, сканируемых на сайтах компаний, и менять это количество «на лету» в процессе сбора
Многопоточное сканирование сайтов компаний: до 50 параллельных потоков
Программа при сканировании сайтов компаний умеет находить скрытые адреса электронной почты (например такие: office[at]mail.ru, office@mail[DOT]ru, office[собака]mail.ru и другие подобные хитрости)
Визуальная индикация прогресса сбора с помощью разноцветных индикаторов
Возможность пропускать ненужные/старые компании с помощью функции skip
Программа автоматически задает имя файла с новой выгрузкой, не нужно искать куда и с каким именем сохранить, чтобы не потерять
Программа автоматически открывает файл выгрузки после завершения сбора — невозможно не заметить
Возможность сразу пользоваться собираемыми данными, еще до завершения полного сбора
Прозрачный, интуитивно понятный интерфейс
Надежная работа с любым качеством Интернет-соединения
Высокое качество продукта — гарантия отсутствия глюков/перезагрузок/и т.д.
Возможность оплаты через расчетный счет с закрывающими бухгалтерскими документами
Оперативная бесплатная техподдержка от профессиональных разработчиков
Бесплатные обновления программы — на год, или навсегда, без ограничения срока!
БОНУС ! Программа для отбора новых компаний в базе Яндекс-карт стоимостью 3.500Р — бесплатно!
БОНУС ! Программа для склеивания нескольких баз в одну (например, для склеивания баз Абакана, Архангельска и Астрахани в одну базу «А») стоимостью 2.000Р — бесплатно!
БОНУС! Скидки на другие наши программы для сбора контактов — до 3.750Р!
БОНУС! Секретный бонус! Какой? — узнаете после покупки! />
Стоимость парсера Яндекс-карт сегодня: 7.500Р от 1000 до 9900 рублей в зависимости от выбранных опций!)


Нажмите кнопку покупки, оформите заказ на защищённом сервере OnWiz, оплатите заказ в автоматическом режиме, и Вам будет автоматически выслана лицензия. Всего 1 минута отделяет Вас от возможности делать выгрузки!
Никогда так не делайте или как выдернуть объект map из конструктора Яндекс Карт
Сервис Яндекс Карты предоставляет один «чудесный» инструмент Конструктор Яндекс Карт. Хотя уже пару лет существует более удобный «аналог» конструктора, пользователей продукта от Яндекс не убавляется. Ко мне обратился один программист и попросил добавить некий функционал к карте, созданной на этом конструкторе. На первый взгляд ничего сложного, карта создается на Мапс АПИ Яндекс и оно без проблем могло бы быть использовано. Однако у программистов Яндекса свое мнение на этот счет — весь API они прячут в контейнер функции и никаких интерфейсов не предоставляют. Чтобы как-то манипулировать картой, создавать на ней объекты и прочее, необходимо иметь доступ к экземпляру ymaps.Map , созданному в недрах конструктора. Чтобы было понятнее приведу пример
Вот, что дает конструктор от Яндекс
А вот этот код уже в развертке, пропущенный через jsbeautifier.org
Все завернуто в анонимную функцию. Экземпляр ymaps.Map создается на строке 64. Как видите он запоминается в локальную переменную, которую увидеть извне невозможно. Так как же получить доступ к этой переменной?
Далее пойдет код, который можно смело показывать в рубрике: Как не следует программировать на JavaScript
План такой: переопределить функцию, которая вызывается в момент когда АПИ карт загружено. Потом в его вызове переопределить конструктор ymaps.Map , и в нем уже каждый созданный экземпляр сохранять в глобальной области видимости.
Как же это сделать?
На помощь нам придет вся сила JavaScript, а именно такая его фишка, что любую функцию или метод, можно переопределить. Что нам это дает? Еще раз взгляните на код выше. Функция callback, которая вызывается для создания карты, по готовности API, получает название на строке 17. Оно формируется случайно
По идее переопределить функцию, не зная названия, мы не можем. Может тогда капнем глубже и переопределим Date и Math.random ?!
Финт ушами и никакого мошенничества. Теперь мы можем использовать функцию window[‘fid1111111111111000000’] . Ее тоже нужно переопределить
API Яши доступно через поле window.ymaps_ctor . Это вы поймете, анализируя первый листинг. Это все! На 6-ой строке мы переопределяем конструктор. Меняем его на свой, а уже в нем вызываем старый конструктор, сохраняя ссылку на карту в свою переменную. Profit.
Теперь с этим объектом можно делать все что угодно: добавлять метки, полигоны и любой другой элемент.
Яндекс тролит программистов делая вот такую документацию API Конструктора карт в которой нет ни слова о том, что вообще можно сделать используя конструктор. Есть в этом доля смысла — если вы хотите большего, то почему бы не использовать само АПИ.
В этом они правы, но ведь конструктор удобен тем, что позволяет визуально создавать сколько угодно меток и полигонов, задавать им всплывающие окна и т.п. Т.е. всю работу с контентом карты можно было бы делать через него. А вот программировать, добавлять свои элементы управления, макеты и поведения меток, можно было бы делать отдельно. Через некий интерфейс.
Код, приведенный выше ужасен. И не стоит прибегать к нему в серьезных проектах. Лучше сразу воспользоваться нормальным конструктором карт, который выдаст вам код на API. и уже вы сможете делать с ним все что хотите. А если у вас сайт на Joomla, то можно вообще не программировать, а воспользоваться компонентом Яндекс Карты — тут Вам доступен и визуальный редактор ака Конструктор, и все плюшки API Yandex Maps
Не бойтесь сложных решений, JavaScript гибок и этот пост в очередной раз доказывает, что в нем нет закрытых тем. Возможно все!