scraper.mindq.ru

← все платформы

Google Maps

URL шаблон: https://www.google.com/maps/place/{name}/@{lat},{lng},{zoom}/data=!.../!1s{place_id}!...

Источник данных: ScraperAPI (render=true) для базовой инфо + Playwright (Chromium со stealth) для отзывов

Стратегия парсинга

  1. Этап 1: GET через ScraperAPI render=true. Здесь полезен `country_code` (например `de`), иначе Google может отдать страницу на случайном языке (тайском, эстонском и т.д.).
  2. Парсим базовые поля **язык-агностично**: phone берём из `data-item-id="phone:tel:+..."`, address из `<div class="Io6YTe">` внутри блока с `data-item-id="address"`, rating через мультиязычный regex (`stars`/`ดาว`/`étoiles`/`Sterne`/...) или `role="img" aria-label="X.X"`.
  3. Этап 2: открываем тот же URL в Playwright с stealth (маскировка webdriver). Ждём, кликаем cookie consent, открываем вкладку Reviews.
  4. Скроллим панель отзывов до 25 раз (или пока новые не перестанут появляться) — каждые 5 итераций считаем количество карточек.
  5. Из DOM собираем все `.jftiEf` карточки: автор, звёзды, дата, текст, профиль, прикреплённые фото.

Поля ресторана

полеоткуда / какпример
name<title> до " - Google Maps" / " – Google Maps"'Frau Möller'
categoryclass="DkEaL" — содержимое (локализовано)'German restaurant' или 'ภัตตาคารอาหารเยอрманий'
address<div class="Io6YTe"> внутри data-item-id="address"'Lange Reihe 96, 20099 Hamburg, Germany'
phonedata-item-id="phone:tel:..." → после tel:'+494025328817'
websitedata-item-id="authority" → href'https://fraumoeller.com/'
ratingrole="img" aria-label="X.X" / мультиязычный regex4.5
num_reviewsaria-label с числом + словом "review"/локализованным9158
hours / open_statusaria-label по дням недели + блок Hours (англ.){friday:'10am-3am',...}
coordinatesиз URL (@lat,lng / !3d{lat}!4d{lng}){lat:'53.55', lng:'10.01'}
place_idиз URL (!1s{place_id}!)'0x47b18eddafc2c67b:0x6b630b9e560ac71b'
page_langатрибут lang="..." у <html> — для отладки'en' / 'th' / 'et'

Поля отзыва

полеоткуда / какпример
name.d4r55 — имя автора'Иван Иванов'
starsaria-label первых "stars" чисел'5'
date.rsqaWe'2 weeks ago'
text.wiI7pd / .MyEned span'Очень вкусно, рекомендую!'
profile_urla[href*="contrib"]'https://maps.google.com/...'
review_photosвсе img/url-bg в карточке кроме аватара['https://...googleusercontent...']

Пример запроса

{
    "platform": "googlemaps",
    "url": "https://www.google.com/maps/place/name/@lat,lng,zoom/data=!.../!1splace_id!..."
}

Опции options.scraperapi описаны в общей документации.

Нюансы