Как я написал многопоточный парсер на Python для сбора GEO-данных с международной автопартнерки: 18 000 точек, 8 потоков и 40 RPS
Автор делится кейсом по созданию кастомного Python-парсера для сбора GEO-данных с сайта международной автопартнерки (аренда авто). Основная задача — выгрузить актуальную базу точек выдачи с координатами по всему миру, несмотря на ограничения API и сложности парсинга.
Ключевые трудности:
- Сайт возвращает не более 10 объектов за раз, требует CSRF-токен и строгую логику обхода (country → region → city → location), иначе выдаёт пустые ответы или банит.
- Пришлось реализовать многопоточность (до 8 потоков и прокси), обход префиксами (BFS), автоматическую дедупликацию и постоянные бэкапы состояния. Использовалась архитектура двух очередей для обработки данных и записи в файл.
- Изначально скрипт работал 18 часов в однопоточном режиме, но после оптимизации (многопоток + прокси) — ускорился до 35–40 минут при 40 RPS на API.
- В процессе было собрано ~18 000 уникальных точек, обработано множество ошибок и реализованы решения для обхода лимитов, защиты от падений, восстановления после сбоев и live-телеметрии через tqdm и rich.
Результат — универсальный парсер, который можно адаптировать под любые задачи парсинга с подобной структурой API, а также ценный разбор типовых проблем: лимитов, архитектуры парсера, очередей, многопоточности, прокси и устойчивости.
Читайте также
ML Q & AI. Глава 2: Self-Supervised обучение
Как внедрить AI-чат в бизнес: инструкция для роста среднего чека и лояльности
ИИ развивается и меняет наше представление о реальности
ИИ — помощник или конкурент? Практика внедрения нейросети в работу системного аналитика банка
Почём ИИ для народа: тест платформы YADRO G4208P с восемью H100 NVL и RTX 4090 на 10 ИИ-моделях
Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!