Парсинг отзывов из Яндекс Карты и Google Place

248
08 сентября 2018, 17:20

Хочу решить задачу с копированием отзывов в мой WP сайт из google place или яндекс карты. но там по умолчанию выводится 10 отзывов. дальше они както по ajax загружаются при пролистывании. какими средствами решить проблему? номера телефонов, адреса я копирую с помощью Simple Php dom parser. а тут как быть? кнопка "показать больше отзывов" имеет такой код:

<div class="reviews__need-more">
    <button class="button button_theme_islands button_size_xl button__control i-bem button_js_inited" role="button" type="button" data-bem="{&quot;button&quot;:{}}">
        <span class="button__text">Показать больше отзывов</span>
    </button> 
</div>

https://yandex.ru/maps/org/mriya_resort_spa/1303073708/ - пример страницы с отзывами

Answer 1

Для вашего примера: В ajax запросы подгружаются через POST:

url: https://yandex.ru/maps/org/api/review/get
data: {"oid":"1303073708","page":2,"csrfToken":"****"}

Как видим, в json содержится id нужного объекта, номер страницы отзывов, и личный csrfToken, который можно найти в исходном коде страницы. В ответ приходит HTML с комментариями.

Можете посмотреть, как проходит запрос, открыв в браузере инструменты анализа (F12) -> вкладка "network" (или "сеть"). При клике на кнопку увидите, что отправился новый запрос, и можете посмотреть информацию о нём.

READ ALSO
try catch начал ловить E_WARNING

try catch начал ловить E_WARNING

Недавно обнаружил, что в проекте конструкции вида:

241
Как получить разделение на категории?

Как получить разделение на категории?

В базе есть записи с валютами, и у каждой валюты своя категорияВалюта и категория в одной таблице

216
Yii2. Trying to get property &#39;username&#39; of non-object

Yii2. Trying to get property 'username' of non-object

Всем приветПрохожу обучение по Yii2 по книге от Bill Keck Yii2 for beginners

274
Как в blade в одну таблицу вывести 3 массива?

Как в blade в одну таблицу вывести 3 массива?

Но если выводить так записи в таблице дублируются, как этого избежать?

224