Как вытащить тысячи контактов из Google Maps с помощью google-maps-scraper

02 сен 2026
3,390
498
29
1 месяц

Когда мне впервые понадобилось собрать базу локальных заведений для клиентского проекта, я сразу пошел в официальный Google Places API. Через пару часов энтузиазм угас. Официальный API оказался слишком дорогим для объемной выгрузки. К тому же он жестко урезает выдачу до шестидесяти результатов на один квадрат поиска. Писать собственный парсер с нуля тоже сомнительное удовольствие. Разметка карт меняется регулярно, селекторы ломаются, а система защиты быстро вешает капчу.

Недавно наткнулся на открытый проект omkarcloud/google-maps-scraper, который набрал больше 3 тысяч звезд на GitHub. Автор упаковал парсинг карт в десктопную утилиту и открыл API для Python и Node.js. Давайте разберем, как это устроено и насколько инструмент удобен в реальной работе.

Google Maps Extractor Featured Image

Что умеет этот скрейпер

Основная задача утилиты простая: вы вводите поисковый запрос (например, кофейни в Риме или автосервисы в Варшаве) и получаете чистую таблицу. Инструмент собирает не базовые три строчки, а до пятидесяти полей данных.

В итоговую выгрузку попадают:

Реклама
  • Название заведения, адрес и точные координаты на карте.
  • Телефон, сайт и рабочий график на всю неделю.
  • Рейтинг заведения, количество оценок и полный текст отзывов.
  • Социальные сети и проверенные email адреса через встроенный модуль обогащения.

Google Maps Data Extractor CSV Result

Если хотите увидеть приложение в действии, автор подготовил короткое минутное демо:

Quick Demo (1 min) — Scrape 10K+ Google Maps Leads for Free

Стратегии поиска и работа с сеткой

Интерфейс Google Maps не выдаст вам 15 тысяч ресторанов мегаполиса одной длинной простыней. При обычной прокрутке страница упрется в лимит около ста пятидесяти точек. Чтобы вытащить максимум контактов, разработчики разбили сбор на несколько стратегий сканирования.

В приложении есть четыре основных режима работы с картой:

  • Быстрый режим (Fast). Собирает от 120 до 1600 результатов на город за пару минут. Подходит для обзорного сбора по целой стране.
  • Сверхбыстрый (Fastest). Экономит около тридцати секунд на город, но упускает часть редких карточек.
  • Детальный поиск (Detailed). Сканирует город по мелким квадратам. Оптимален для глубокой проработки отдельного мегаполиса.
  • Поиск по зуму (Zoom 15-18). Zoom 18 спускается до уровня отдельных улиц. Сбор крупного города в таком режиме займет три часа, зато отдаст свыше 10 000 точек.

search-strategies.png

Также можно очертить область поиска произвольным полигоном или передать точные координаты широты и долготы. Это выручает, когда нужно собрать данные строго внутри одного микрорайона или вдоль конкретной трассы.

Установка и запуск

Скрейпер доступен в виде сборок для macOS, Windows и Linux. Для корректной работы на компьютере должен стоять Google Chrome, так как утилита управляет браузером в фоновом режиме.

GIF of Google Maps Extractor Visit, Highlight Keyword, Run, See Results

На Ubuntu 24.04 и новее запускать программу нужно через терминал:

googlemapsextractor --no-sandbox

В репозитории есть пятиминутное обучающее видео с разбором фильтров и форматов экспорта:

Detailed Demo (5 min) — Google Maps Scraper Full Tutorial

Интеграция в код через Python и Node.js

Десктопный интерфейс хорош для разовых выгрузок. Когда процесс нужно встроить в бэкенд, на помощь приходят библиотеки botasaurus-api для Python и botasaurus-desktop-api для Node.js.

Установка Python-пакета выполняется через стандартный менеджер:

pip install botasaurus-api

Пример отправки задачи на сбор данных из Python:

from botasaurus_api import Api

# Подключаемся к локальному экземпляру скрейпера
api = Api("http://localhost:8000")

# Запускаем сбор
task = api.create_task(
    scraper="google_maps_scraper",
    data={
        "query": "coworking in London",
        "max_results": 200,
        "search_strategy": "fast"
    }
)

# Забираем готовые данные
results = task.get_results()
print(f"Успешно выгружено записей: {len(results)}")

Такая связка дает возможность поднять скрейпер на виртуальной машине в AWS или GCP и отправлять запросы по расписанию через cron или вебхуки.

Обогащение контактов

Телефонные номера в профилях карт часто ведут на общую стойку регистрации. Чтобы найти прямые контакты владельцев или маркетологов, в инструмент интегрировали модуль обогащения данных (Enrichment).

Процесс устроен следующим образом:

  1. Скрейпер берет адрес сайта из карточки Google Maps.
  2. Сервис обходит страницы сайта и извлекает корпоративные email адреса с проверкой доставляемости.
  3. Модуль подтягивает ссылки на страницы компании в социальных сетях.
  4. Проверяется тип телефонного номера, чтобы отсеять городские стационарные линии от мобильных.

Copy the API Key

enrichment-section.png

После включения опции таблица результатов заполняется дополнительными колонками:

enrichment-results.png

Тарифы и условия

В проекте действует гибридная модель. Базовый тариф дает 200 бесплатных поисковых сессий в месяц без ввода платежных данных. С учетом того, что один поиск отдает сотни контактов, этого объема хватает примерно на двадцать тысяч лидов ежемесячно.

Сетка тарифов выглядит так:

  • Бесплатный план включает 200 поисков каждый месяц.
  • План Starter за $16 в месяц расширяет лимит до 5 000 поисков.
  • План Unlimited за $48 в месяц снимает ограничения на объем запросов.
  • Студентам и начинающим предпринимателям с ограниченным бюджетом автор открывает 12 месяцев бесплатного доступа по прямому запросу на почту или в WhatsApp.

На платных тарифах возврат средств оформляется в два клика прямо из личного кабинета:

2-Click Refund Process of Omkar Cloud

Для связи с разработчиками автор оставил прямые каналы поддержки:

Message Us on WhatsApp about Google Maps Scraper

Ask Us on Email about Google Maps Scraper

Кому пригодится утилита

Инструмент решает прикладную задачу, когда платить за дорогие облачные платформы парсинга вроде Apify не хочется, а писать собственный браузерный обходчик некогда.

Проект оценят:

  • Разработчики, собирающие локальные датасеты для своих сервисов.
  • Основатели стартапов, которым нужны первые B2B клиенты в конкретном городе.
  • Аналитики данных для оценки плотности инфраструктуры и конкурентной среды.
  • Маркетологи, формирующие базы прямых контактов для холодных рассылок.

Исходный код и документация по развертыванию доступны в репозитории проекта. Попробовать сбор можно локально буквально за пять минут.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.