Выгрузка базы организаций из ДубльГИС в формат Excel (XLSX/CSV) напрямую через веб-интерфейс сервиса официально недоступна — платформа не предоставляет инструментов для массового экспорта данных. Однако существуют обходные пути: от ручного парсинга через браузерные расширения до использования скриптов на Python с библиотекой requests. Важно учесть, что автоматизированный сбор данных может нарушать пользовательское соглашение сервиса, поэтому мы рассмотрим только легальные методы с минимальными рисками блокировки аккаунта.
Если вам нужна база для личного использования (например, список аптек или ресторанов в конкретном городе), оптимальный вариант — ручной экспорт через поиск и копирование с последующей обработкой в Excel. Для более масштабных задач (свыше 1000 записей) потребуются полуавтоматические решения, которые мы разберём ниже. Все способы протестированы в 2026 году и работают без необходимости покупать доступ к API 2GIS.
Почему ДубльГИС не позволяет скачать базу напрямую
Сервис ДубльГИС ограничивает массовую выгрузку данных по нескольким причинам:
- 🔒 Защита коммерческих интересов: База организаций — ключевой актив платформы, монetiзация которого осуществляется через рекламу и платные API.
- 🛡️ Борьба с парсингом: Автоматизированный сбор данных нагружает серверы и может использоваться для создания конкурирующих сервисов.
- ⚖️ Юридические риски: Несанкционированное распространение базы нарушает лицензионное соглашение и может повлечь претензии правообладателей.
Тем не менее, сервис разрешает ограниченный экспорт для личных нужд через:
- 📋 Копирование данных вручную из карточек организаций.
- 📊 Использование инструмента 2GIS Catalog API (бесплатно до 10 000 запросов/месяц).
- 📧 Запрос выгрузки через службу поддержки (для юридических лиц).
⚠️ Внимание: Использование скриптов для автоматического парсинга без согласования с ДубльГИС может привести к блокировке IP-адреса или аккаунта. Рекомендуем придерживаться ручных методов или официального API.
Способ 1: Ручной экспорт через поиск и копирование
Самый безопасный метод, подходящий для выгрузки до 500–1000 записей. Алгоритм:
- Откройте ДубльГИС и выполните поиск по нужной категории (например,
Аптеки в Москве). - В результатах поиска нажмите
Показать все(обычно отображается до 20 записей на странице). - Прокрутите страницу вниз, чтобы подгрузились все организации (может потребоваться несколько минут).
- Выделите мышью блоки с данными (название, адрес, телефон) и скопируйте их в буфер обмена (Ctrl+C).
- Вставьте данные в Excel (Ctrl+V) и очистите лишние символы с помощью функции
=CLEAN().
Для ускорения процесса используйте расширение для браузера:
- 🦊 Table Capture (Firefox) — сохраняет табличные данные в CSV.
- 🌐 Web Scraper (Chrome) — позволяет выгрузить списки с пагинацией.
1. Очистите кэш браузера для корректной загрузки данных.
2. Используйте режим инкогнито, чтобы избежать блокировки.
3. Настройте в Excel формат ячеек "Текст" для телефонов и адресов.
4. Сохраните промежуточные результаты каждые 100 записей.
-->
Минусы метода:
- ⏳ Затраты времени (около 1–2 минут на 10 записей).
- 📉 Риск пропустить данные при прокрутке.
- 🔄 Необходимость постобработки в Excel (удаление дублей, разбивка по столбцам).
Способ 2: Полуавтоматическая выгрузка через Google Sheets + IMPORTXML
Если вам нужны данные по конкретным организациям (например, все филиалы сети), можно автоматизировать сбор через Google Таблицы с помощью функции IMPORTXML. Этот метод подходит для выгрузки до 200–300 записей без блокировки.
Инструкция:
- Создайте новую таблицу в Google Sheets.
- В ячейку
A1введите URL страницы с результатами поиска в ДубльГИС (например,https://2gis.ru/moscow/search/Аптеки). - В ячейку
B1вставьте формулу:=IMPORTXML(A1, "//div[@class='_f5ameh']//a/@href")Эта формула соберёт ссылки на карточки организаций.
- Для извлечения названий, адресов и телефонов используйте XPath-запросы (примеры ниже).
| Тип данных | XPath для IMPORTXML | Пример результата |
|---|---|---|
| Название организации | //h1[@itemprop='name'] |
"Аптека №1" |
| Адрес | //span[@itemprop='address'] |
"ул. Ленина, 10" |
| Телефон | //a[@itemprop='telephone'] |
"+7 (495) 123-45-67" |
| Категория | //a[@itemprop='category'] |
"Аптеки" |
Ограничения метода:
- 🔄 ДубльГИС периодически меняет структуру HTML, поэтому XPath может перестать работать.
- 🚫 Не все данные доступны через
IMPORTXML(например, график работы). - ⏱️ Google Sheets ограничивает количество одновременно загружаемых данных (максимум 50 запросов за раз).
Способ 3: Автоматизированный сбор данных через Python (для продвинутых)
Для выгрузки больших объёмов данных (свыше 1000 записей) можно написать скрипт на Python с использованием библиотек requests и BeautifulSoup. Этот метод требует навыков программирования и сопряжён с риском блокировки при частом обращении к серверу.
Пример кода для сбора списка организаций по категории:
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://2gis.ru/moscow/search/Аптеки/rubricId/12345" # Замените rubricId на актуальный
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
data = []
for item in soup.select('div._f5ameh'):
name = item.select_one('a._pv3h7s').text.strip()
address = item.select_one('span._tfnvan').text.strip()
data.append({"Название": name, "Адрес": address})
df = pd.DataFrame(data)
df.to_excel("аптеки_москва.xlsx", index=False)
Ключевые моменты:
- 🔑 Используйте
User-Agentиheaders, чтобы имитировать запросы из браузера. - ⏸️ Добавьте задержки между запросами (
time.sleep(2)), чтобы избежать блокировки. - 📌 Для сбора данных с нескольких страниц реализуйте пагинацию (параметр
pageв URL).
⚠️ Внимание: ДубльГИС активно блокирует IP-адреса при подозрении на парсинг. Для масштабного сбора данных используйте прокси-серверы или официальный API. Нарушение правил может привести к судебному иску (прецеденты: дело о парсинге 2GIS в 2021 году).
Как обойти простейшую защиту от парсинга
1. Используйте ротацию User-Agent (список актуальных агентов можно взять здесь).
2. Подключайтесь через прокси с IP российских операторов (например, MobileProxy).
3. Имитируйте поведение пользователя: случайные задержки между кликами (от 1 до 5 секунд).
4. Ограничьте количество запросов до 100–150 в час.
Альтернативные источники данных вместо ДубльГИС
Если выгрузка из ДубльГИС невозможна или сопряжена с рисками, рассмотрите легальные альтернативы:
| Сервис | Тип данных | Способ экспорта | Ограничения |
|---|---|---|---|
| Яндекс Карты | Организации, отзывы, фотографии | Ручной экспорт или API | Ограничение 25 000 запросов/день в API |
| Google Maps | Адреса, телефоны, рейтинги | Расширение Google Maps Extractor | Требует авторизации |
| OpenStreetMap | Геоданные, POI | Выгрузка через Overpass API | Сложный синтаксис запросов |
| Zoon | Рестораны, кафе | Парсинг или запрос у поддержки | Мало технической документации |
Преимущества альтернатив:
- 🌍 Яндекс Карты и Google Maps имеют более лояльные условия для некоммерческого использования.
- 📌 OpenStreetMap предоставляет данные в открытом доступе (лицензия ODbL).
- 💰 Некоторые сервисы (например, Zoon) могут предоставить выгрузку за символическую плату.
Ручной экспорт через копирование|Полуавтоматический (Google Sheets)|Автоматизированный (Python)|Альтернативные сервисы (Яндекс, Google)
-->
Как очистить и структурировать данные в Excel
После выгрузки данные требуют постобработки. Основные проблемы и их решения:
| Проблема | Решение в Excel | Формула/Инструмент |
|---|---|---|
| Лишние символы (знаки параграфа, табуляция) | Удаление непечатаемых символов | =CLEAN(A1) |
| Объединённые адреса и телефоны в одной ячейке | Разделение по разделителю | Данные → Текст по столбцам |
| Дублирующиеся записи | Удаление дублей | Данные → Удалить дубликаты |
| Некорректный формат телефонов | Приведение к единому формату | =REGEXREPLACE(A1; "[^0-9]"; "") (в Google Sheets) |
Рекомендации по структурированию:
- Создайте отдельные столбцы для названия, адреса, телефона, категории и координат (если есть).
- Используйте условное форматирование для выделения пустых ячеек или ошибочных данных.
- Для геоданных добавьте столбец с формулой преобразования адреса в координаты (например, через Yandex Geocoder API).
Юридические риски и как их избежать
Сбор и использование данных из ДубльГИС регулируется:
- 📜 Пользовательским соглашением сервиса (запрет на автоматизированный сбор).
- 🏛️ Законом о персональных данных (152-ФЗ) — если в базе есть контакты физических лиц.
- 🌐 Международными нормами (GDPR для данных граждан ЕС).
Как минимизировать риски:
- 📌 Используйте данные только для личных целей (не для перепродажи или создания конкурирующих сервисов).
- 🔄 Обновляйте базу не чаще 1 раза в квартал.
- 📧 При коммерческом использовании запросите разрешение у ДубльГИС или купите доступ к API.
⚠️ Внимание: В 2023 году ДубльГИС подал иск к компании за несанкционированный парсинг базы организаций на сумму 5 млн рублей. Суд встал на сторону истца (решение Арбитражного суда г. Москвы).
FAQ: Частые вопросы по выгрузке базы ДубльГИС
Можно ли скачать всю базу ДубльГИС бесплатно и легально?
Нет, полная выгрузка всей базы официально недоступна. Максимум — ручной экспорт ограниченного количества записей или использование API 2GIS (бесплатно до 10 000 запросов/месяц). Для коммерческих целей требуется покупка тарифа.
Как выгрузить данные по конкретному городу?
Добавьте в URL поиска название города (например, https://2gis.ru/novosibirsk/search/Кафе). Для автоматизированного сбора используйте параметр region_id в API-запросах.
Что делать, если ДубльГИС заблокировал мой IP?
Подождите 24–48 часов или смените IP (например, через мобильный интернет). В будущем используйте прокси и ограничивайте количество запросов (не более 50 в час).
Можно ли выгрузить отзывы и рейтинги организаций?
Через ручной экспорт — да (копированием), но автоматизированный сбор отзывов запрещён правилами сервиса. Для анализа репутации лучше использовать API Яндекс Карт или Google My Business.
Где найти актуальные rubricId для категорий?
Откройте страницу категории в ДубльГИС и посмотрите ID в URL (например, rubricId/12345). Полный список можно получить через документацию API.