🚀 Мощный FastAPI сервер для парсинга данных с 2GIS
Этот проект предоставляет REST API для поиска и извлечения информации об организациях с карт 2GIS, используя библиотеку parser-2gis.
- 🎯 Поиск по координатам - находите организации вокруг указанной точки
- 🏙️ Поиск по городам - ищите бизнесы в любом городе России
- 📊 JSON API - получайте структурированные данные
- 📄 CSV экспорт - скачивайте результаты в виде файлов
- 🐳 Docker Ready - легкое развертывание в контейнерах
- 📚 Автодокументация - встроенная Swagger UI
- ⚡ Высокая производительность - асинхронная обработка запросов
pip install -r requirements.txtpy main.pyСервер будет доступен по адресу: http://localhost:8000
Откройте в браузере: http://localhost:8000/docs
POST /search-near-point-jsonПример запроса:
{
"name": "аптека",
"lat": 55.7517,
"lon": 37.6178,
"limit": 5
}Пример ответа:
{
"success": true,
"message": "Найдено 5 организаций",
"total_results": 5,
"data": [
{
"Наименование": "Аптека №1",
"Адрес": "Москва, ул. Примерная, 123",
"Телефон": "+7 (495) 123-45-67",
"Широта": 55.7520,
"Долгота": 37.6180,
"Рейтинг": "4.5",
"2GIS URL": "https://2gis.ru/moscow/firm/..."
}
]
}POST /search-businessПример запроса:
{
"name": "пиццерия",
"city": "moscow",
"format": "json"
}GET /search-business-csv?name=кафе&city=spbВозвращает CSV файл для скачивания.
GET /healthdocker-compose updocker build -t 2gis-api .
docker run -p 8000:8000 2gis-apipy test_api.py # Полный набор тестов
py test_json_api.py # Тесты JSON APIcurl http://localhost:8000/healthtwogis/
├── main.py # FastAPI сервер
├── Twogis.py # Основная логика парсинга
├── requirements.txt # Зависимости Python
├── docker-compose.yml # Docker Compose конфигурация
├── Dockerfile # Docker образ
├── healthcheck.py # Проверка здоровья для Docker
├── test_api.py # Тесты API
├── test_json_api.py # Тесты JSON
├── API_EXAMPLES.md # Примеры использования
└── API_JSON_GUIDE.md # Руководство по JSON API
PARSER_2GIS_CHROME_PATH- путь к Chrome/Chromium (опционально)
limit- максимальное количество результатов (по умолчанию: 10)format- формат вывода: csv, xlsx, json (по умолчанию: json)
pip install -r requirements.txtuvicorn main:app --reload --host 0.0.0.0 --port 8000- API Examples - подробные примеры использования
- JSON API Guide - руководство по JSON API
- Swagger UI - интерактивная документация
- FastAPI - современный веб-фреймворк
- parser-2gis - библиотека для парсинга 2GIS
- Pandas - обработка данных
- Uvicorn - ASGI сервер
- Docker - контейнеризация
- Pydantic - валидация данных
Этот проект создан для образовательных целей.
При возникновении проблем:
- Проверьте логи сервера
- Убедитесь, что Chrome/Chromium установлен
- Проверьте доступность 2GIS
Сделано с ❤️ для эффективного парсинга 2GIS