Google Maps — это ресурсное приложение для карт, которое предоставляет исчерпывающую информацию о географических точках по всему миру. Это также важный источник информации о местном бизнесе. Вы можете использовать его, чтобы получить название компании, адрес, URL веб-сайта, часы работы и многое другое.

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

В этой статье рассказывается о том, как делать веб-скрапинг Google Maps. Вы узнаете, как получить полезную информацию о местном бизнесе из приложения. Мы также обсудим, как Crawlbase может помочь вам сделать процесс извлечения данных плавным, быстрым и результативным.

Давайте начнем с разговора о том, как можно использовать Crawlbase для сбора данных Google Maps.

Что такое скрапер Google Maps?

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

. Crawlbase для копирования Google Maps

Crawlbase — универсальный инструмент, позволяющий масштабировать онлайн-данные. Его можно использовать для широкого спектра задач по извлечению данных, включая парсинг Google Maps. Это то, что вам нужно, чтобы преодолеть обычные проблемы парсинга и извлечь максимальную пользу из ваших усилий.

Вот несколько причин, почему Crawlbase является важным инструментом для создания скрапера Google Maps:

  • Простота в использовании: Crawlbase предоставляет удобный API, который позволяет создать скрапер Google Maps за несколько минут. Также имеется подробная документация с примерами кода о том, как интегрировать API.
  • Поддерживает анонимное сканирование: Для пользователя Crawlbase, вам не придется беспокоиться о раскрытии вашей настоящей личности при скрапинге Google Maps. Он имеет обширный пул прокси и дата-центров, что позволяет вам оставаться анонимным.
  • Поддерживает расширенное извлечение: Crawlbase поддерживает все типы проектов сканирования. Поскольку он поддерживает рендеринг JavaScript, это предоставляет вам реальные возможности браузера для извлечения данных из современных сложных веб-сайтов без каких-либо помех. Он также позволяет вам обходить блокировки, CAPTCHA и другие ограничения доступа, которые могут помешать вам быстро и эффективно собирать данные.
  • Бесплатный тестовый аккаунт: После регистрации учетной записи вы получите 1,000 бесплатных кредитов для тестирования возможностей инструмента. Затем вы можете просто продолжать пользоваться сервисом и платить за использование в конце каждого платежного цикла.

Для этого руководства по извлечению данных из Google Карт мы будем использовать CrawlbaseАвтора Crawling API. Каждый запрос к API начинается со следующей базовой части:

1
https://api.crawlbase

Затем требуются следующие два обязательных параметра строки запроса:

  • Уникальный токен аутентификации: Это дает вам право использовать API. Crawlbase предоставляет два типа токенов: обычный токен для выполнения общих веб-запросов и токен JavaScript для извлечения динамических веб-сайтов, отображаемых с помощью JavaScript.
  • Целевой URL: Это URL, который вам нужен для извлечения его данных. Он должен начинаться с HTTP или HTTPS. Вам также следует закодировать URL, чтобы преобразовать его в формат, который можно легко передать через Интернет.

Вот как добавить обязательные параметры в запрос API:

1
https://api.crawlbase.com/?token=ADD_TOKEN&url=ADD_URL

Это все, что вам нужно, чтобы начать использовать Crawlbase для извлечения информации из Интернета.

Это так просто!

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

Как создать скрапер Google Maps

Давайте теперь посмотрим, как можно использовать Crawlbase для быстрого и эффективного извлечения данных из Google Maps. В этом руководстве мы постараемся извлечь данные о ресторанах Нью-Йорка, перечисленных на Google MapsДля этой задачи мы будем использовать язык программирования PHP.

Шаг 1: Получите URL-адрес запроса

Давайте начнем с поиска ресторанов в Нью-Йорке на Google Картах.

Поиск ресторанов

Как видно на скриншоте выше, данные ресторанов поставляются на левой боковой панели страницы. Это то, что мы хотим вытащить, а не извлекать данные со всей страницы. Самый простой способ вытащить их — это проверить сетевой трафик браузера и получить URL, который поставляет данные.

Чтобы проверить сетевой трафик браузера, вы можете щелкнуть правой кнопкой мыши в любом месте левой боковой панели страницы и выбрать Диагностика option. Это откроет раздел инструментов разработчика в нижней части окна браузера. Далее выберите вкладку Сеть. Вы начнете видеть данные, которые поступают через сеть.

Опция проверки

Чтобы загрузить нужные нам данные, снова выполните поиск по запросу «New York restaurants». Затем вы можете ввести «search» в поле поиска панели «Network», чтобы отфильтровать URL-адреса поиска.

Опция поиска

Это покажет URL-адреса, связанные с вашим недавним поиском. В этом случае нужные нам данные находятся в первом запросе GET, который доставляет данные ресторанов в формате JSON.

Если щелкнуть по строке, содержащей запрос, отобразится новая правая панель. Панель дает больше информации о запросе. Под Заголовки вкладку, выделите и скопируйте URL. Это URL, используемый для получения данных, отображаемых на Google Maps. Это URL, который мы будем использовать для извлечения данных ресторанов.

Вкладка «Заголовки»

Вот URL-адрес, который мы получили:

1
https://www.google.com/search?tbm=map&authuser=0&hl=en&gl=ke&pb=!4m12!1m3!1d13288.926258283986!2d-74.02334913898135!3d40.73841320805614!2m3!1f0!2f0!3f0!3m2!1i1366!2i211!4f13.1!7i20!10b1!12m8!1m1!18b1!2m3!5m1!6e2!20e3!10b1!16b1!19m4!2m3!1i360!2i120!4i8!20m65!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i240!7m50!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e3!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e3!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!22m6!1sVgY-YP-eBdqg5NoPuc2f4A8:2!2s1i:0,t:11886,p:VgY-YP-eBdqg5NoPuc2f4A8:2!7e81!12e5!17sVgY-YP-eBdqg5NoPuc2f4A8:92!18e15!24m54!1m16!13m7!2b1!3b1!4b1!6i1!8b1!9b1!20b0!18m7!3b1!4b1!5b1!6b1!9b1!13b0!14b0!2b1!5m5!2b1!3b1!5b1!6b1!7b1!10m1!8e3!14m1!3b1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1!30m1!2b1!36b1!43b1!52b1!54m1!1b1!55b1!56m2!1b1!3b1!65m5!3m4!1m3!1m2!1i224!2i298!89b1!26m4!2m3!1i80!2i92!4i8!30m0!34m16!2b1!3b1!4b1!6b1!8m4!1b1!3b1!4b1!6b1!9b1!12b1!14b1!20b1!23b1!25b1!26b1!37m1!1e81!42b1!47m0!49m1!3b1!50m4!2e2!3m2!1b1!3b1!65m0!69i544&q=New york restaurants&oq=New york restaurants&gs_l=maps.3..38i39i129k1j38i39i129i444k1j38i426k1l3.0.0.2.48644.1.1.0.0.0.0.713.713.6-1.1.0....0...1ac..64.maps..0.1.713....0.&tch=1&ech=2&psi=VgY-YP-eBdqg5NoPuc2f4A8.1614677593039.1

Далее давайте очистим URL-адрес запроса, удалив следующие параметры строки запроса, которые могут быть не нужны:

  • oq
  • gs_l
  • TCH
  • все
  • фунтов на квадратный дюйм

Вот как выглядит окончательный URL:

1
https://www.google.com/search?tbm=map&authuser=0&hl=en&gl=ke&pb=!4m12!1m3!1d13288.926258283986!2d-74.02334913898135!3d40.73841320805614!2m3!1f0!2f0!3f0!3m2!1i1366!2i211!4f13.1!7i20!10b1!12m8!1m1!18b1!2m3!5m1!6e2!20e3!10b1!16b1!19m4!2m3!1i360!2i120!4i8!20m65!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i240!7m50!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e3!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e3!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!22m6!1sVgY-YP-eBdqg5NoPuc2f4A8:2!2s1i:0,t:11886,p:VgY-YP-eBdqg5NoPuc2f4A8:2!7e81!12e5!17sVgY-YP-eBdqg5NoPuc2f4A8:92!18e15!24m54!1m16!13m7!2b1!3b1!4b1!6i1!8b1!9b1!20b0!18m7!3b1!4b1!5b1!6b1!9b1!13b0!14b0!2b1!5m5!2b1!3b1!5b1!6b1!7b1!10m1!8e3!14m1!3b1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1!30m1!2b1!36b1!43b1!52b1!54m1!1b1!55b1!56m2!1b1!3b1!65m5!3m4!1m3!1m2!1i224!2i298!89b1!26m4!2m3!1i80!2i92!4i8!30m0!34m16!2b1!3b1!4b1!6b1!8m4!1b1!3b1!4b1!6b1!9b1!12b1!14b1!20b1!23b1!25b1!26b1!37m1!1e81!42b1!47m0!49m1!3b1!50m4!2e2!3m2!1b1!3b1!65m0!69i544&q=New york restaurants

Шаг 2: Изучите возвращенные данные.

Давайте теперь сделаем запрос, используя захваченный URL, и посмотрим, как выглядят возвращенные данные. Это поможет в создании логики скрапинга на следующем шаге.

Мы будем использовать PHP-библиотека cURL чтобы сделать запрос GET и получить данные Google Maps. Поскольку Crawlbase требует кодирования URL-адресов, мы воспользуемся встроенным urlencode () функция для кодирования полученного URL.

В этом случае мы будем использовать Crawlbaseобычный токен для выполнения запроса.

Вот код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

//Кодирование URL
$ url = урленкод("https://www.google.com/search?tbm=map&authuser=0&hl=en&gl=ke&pb=!4m12!1m3!1d13288.926258283986!2d-74.02334913898135!3d40.73841320805614!2m3!1f0!2f0!3f0!3m2!1i1366!2i211!4f13.1!7i20!10b1!12m8!1m1!18b1!2m3!5m1!6e2!20e3!10b1!16b1!19m4!2m3!1i360!2i120!4i8!20m65!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i240!7m50!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e3!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e3!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!22m6!1sVgY-YP-eBdqg5NoPuc2f4A8:2!2s1i:0,t:11886,p:VgY-YP-eBdqg5NoPuc2f4A8:2!7e81!12e5!17sVgY-YP-eBdqg5NoPuc2f4A8:92!18e15!24m54!1m16!13m7!2b1!3b1!4b1!6i1!8b1!9b1!20b0!18m7!3b1!4b1!5b1!6b1!9b1!13b0!14b0!2b1!5m5!2b1!3b1!5b1!6b1!7b1!10m1!8e3!14m1!3b1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1!30m1!2b1!36b1!43b1!52b1!54m1!1b1!55b1!56m2!1b1!3b1!65m5!3m4!1m3!1m2!1i224!2i298!89b1!26m4!2m3!1i80!2i92!4i8!30m0!34m16!2b1!3b1!4b1!6b1!8m4!1b1!3b1!4b1!6b1!9b1!12b1!14b1!20b1!23b1!25b1!26b1!37m1!1e81!42b1!47m0!49m1!3b1!50m4!2e2!3m2!1b1!3b1!65m0!69i544&q=Newyork restaurants");
//инициализируем новый сеанс cURL
$ завиток = curl_init();
//передать целевой URL с помощью Crawlbase
curl_setopt($ завиток, CURLOPT_URL, 'https://api.crawlbase.com/?token=ADD_NORMAL_TOKEN&url=' . $ url);
//возврат содержимого страницы
curl_setopt($ завиток, CURLOPT_RETURNTRANSFER, правда);
//выполнить предопределенный сеанс cURL
$response_data = curl_exec($ завиток);
//закрыть сеанс cURL
curl_close($ завиток);
//вывод ответа
эхо $response_data

?>

Если мы запустим приведенный выше код, то получим в браузере следующий вывод:

Вывод браузера

Если вы вставите возвращенные данные в инструмент проверки JSON, например этот просмотрщик JSON, вы можете сделать несколько полезных наблюдений. Например, вы заметите, что удаление первых четырех символов делает данные в допустимом формате JSON.

JSON-форма

Вы также заметите, что данные содержатся в массивах, которые вложены друг в друга. Например, данные первых 20 ресторанов содержатся в следующем помеченном разделе:

Данные о ресторанах

Если мы развернем массив, то сможем найти информацию о каждом ресторане. Например, если мы развернем вложенный массив номер 1, вы заметите, что сведения о ресторане содержатся в массиве номер 14. Это закономерность для всех данных.

Например, название ресторана находится под номером 11:

Название ресторана

Расположение ресторана: дом 18:

Расположение ресторанов

Номер телефона ресторана находится в массиве номер 178:

Рестораны Контакты

Шаг 3: Создание логики скрапинга

Как мы уже упоминали ранее, удаление первых четырех символов в возвращаемых данных делает их в допустимом формате JSON. Это сделает возможным итерацию по данным.

Вот код для этого:

1
$response_data = подстрока($response_data, 4, -1);

Также, заменив нуль Значения с пустыми строками в возвращаемом ответе упрощают обработку данных.

Вот код для этого:

1
$response_data = str_replace("нулевой,", '"",', $response_data);

Далее, давайте воспользуемся встроенным json_decode функция для преобразования строковых данных JSON в переменную объекта PHP. Мы также установим правда параметр для преобразования возвращаемого объекта в ассоциативный массив.

Вот код:

1
$scraped_data = json_decode($response_data, правда);

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

Тогда давайте воспользуемся Еогеасп loop для обхода массива и поиска экземпляров, где встречается массив с номером 14. Помните, что нужные нам данные содержатся в массиве с номером 14.

Наконец, давайте найдем упоминания названий ресторанов, их местоположений и номеров телефонов.

Вот код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (Исеть($scraped_data[0][1]))
{
Еогеасп ($scraped_data[0][1] as $ Значение)
{
if (Исеть($ Значение[14]))
{
$restaurants_data = $ Значение[14];
$временный_массив = [];
if (Исеть($restaurants_data[11])) $временный_массив[«Название ресторана:»знак равно $restaurants_data[11];
if (Исеть($restaurants_data[18])) $временный_массив[«Расположение ресторана:»знак равно $restaurants_data[18];
if (Исеть($restaurants_data[178][0][0])) $временный_массив[«Номер телефона ресторана:»знак равно $restaurants_data[178][0][0];
$final_array_data"=" $временный_массив;
}
}

}

Резюме

Вот весь код для использования Crawlbase для копирования Google Maps:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

//Кодирование URL
$ url = урленкод("https://www.google.com/search?tbm=map&authuser=0&hl=en&gl=ke&pb=!4m12!1m3!1d13288.926258283986!2d-74.02334913898135!3d40.73841320805614!2m3!1f0!2f0!3f0!3m2!1i1366!2i211!4f13.1!7i20!10b1!12m8!1m1!18b1!2m3!5m1!6e2!20e3!10b1!16b1!19m4!2m3!1i360!2i120!4i8!20m65!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i240!7m50!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e3!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e3!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!22m6!1sVgY-YP-eBdqg5NoPuc2f4A8:2!2s1i:0,t:11886,p:VgY-YP-eBdqg5NoPuc2f4A8:2!7e81!12e5!17sVgY-YP-eBdqg5NoPuc2f4A8:92!18e15!24m54!1m16!13m7!2b1!3b1!4b1!6i1!8b1!9b1!20b0!18m7!3b1!4b1!5b1!6b1!9b1!13b0!14b0!2b1!5m5!2b1!3b1!5b1!6b1!7b1!10m1!8e3!14m1!3b1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1!30m1!2b1!36b1!43b1!52b1!54m1!1b1!55b1!56m2!1b1!3b1!65m5!3m4!1m3!1m2!1i224!2i298!89b1!26m4!2m3!1i80!2i92!4i8!30m0!34m16!2b1!3b1!4b1!6b1!8m4!1b1!3b1!4b1!6b1!9b1!12b1!14b1!20b1!23b1!25b1!26b1!37m1!1e81!42b1!47m0!49m1!3b1!50m4!2e2!3m2!1b1!3b1!65m0!69i544&q=Newyork restaurants");
//инициализируем новый сеанс cURL
$ завиток = curl_init();
//передать целевой URL с помощью Crawlbase
curl_setopt($ завиток, CURLOPT_URL, 'https://api.crawlbase.com/?token=ADD_NORMAL_TOKEN&url=' . $ url);
//возврат содержимого страницы
curl_setopt($ завиток, CURLOPT_RETURNTRANSFER, правда);
//выполнить предопределенный сеанс cURL
$response_data = curl_exec($ завиток);
//закрыть сеанс cURL
curl_close($ завиток);
//удалить первые четыре символа
$response_data = подстрока($response_data, 4, -1);
//замена нулевых значений
$response_data = str_replace("нулевой,", '"",', $response_data);
//преобразовать строковые данные JSON в объект PHP
$scraped_data = json_decode($response_data, правда);

$final_array_data = [];

//создаем логику скрапинга
if (Исеть($scraped_data[0][1]))
{
Еогеасп ($scraped_data[0][1] as $ Значение)
{
if (Исеть($ Значение[14]))
{
$restaurants_data = $ Значение[14];
$временный_массив = [];
if (Исеть($restaurants_data[11])) $временный_массив[«Название ресторана:»знак равно $restaurants_data[11];
if (Исеть($restaurants_data[18])) $временный_массив[«Расположение ресторана:»знак равно $restaurants_data[18];
if (Исеть($restaurants_data[178][0][0])) $временный_массив[«Номер телефона ресторана:»знак равно $restaurants_data[178][0][0];
$final_array_data"=" $временный_массив;
}
}

}

//вывод окончательных данных
var_dump($final_array_data);

?>

Если мы запустим код, то получим вот такой результат (он сокращен для краткости):

Результат

Мы сделали это!

Нам удалось извлечь данные из Google Maps.

Извлеките данные из Google Карт с помощью Crawlbase

Вот как можно скопировать данные с Google Maps с помощью Crawlbase. С Crawlbase, вы можете быстро и эффективно извлекать картографические данные, сохраняя при этом анонимность.

Это инструмент, который вам нужен для извлечения онлайн-данных, не беспокоясь об ограничениях доступа. Вы можете использовать его для извлечения неструктурированной информации с любой веб-страницы и легко импортировать данные в свою рабочую среду.
Нажмите здесь, чтобы создать бесплатно Crawlbase аккаунт .

Удачного соскабливания!