Розробка парсера контактних даних з відкритих джерел
Парсер контактних даних—це інструмент, який автоматично збирає email-адреси, номери телефонів, адреси, ссилки на соціальні сіті та імена з публічно доступних джерел: сайтів компаній, каталогів, агреґаторів, сторінок-довідників. Завдання технічно нетривіально: структура джерел відрізняється кардинально, дані зашиті в нестандартний HTML, сховані за JavaScript-рендерингом або захищені від автоматичного збору.
Архітектура парсера
Типовий стек для такого проекту:
- Playwright або Puppeteer—для сторінок з динамічною загрузкою контенту (SPA, lazy load)
- Cheerio (Node.js) або BeautifulSoup (Python)—для статичного HTML
- Scrapy з мідлварами—якщо потрібна висока продуктивність та паралельний обхід
- Redis—черга URL для обходу, дедупликація вже відвіданих сторінок
- PostgreSQL—зберігання результатів з повнотекстовим пошуком
Для витяг контактів використовуються регулярні вирази з урахуванням регіональних форматів: російські номери у форматах +7 (XXX) XXX-XX-XX, 8-XXX-XXXXXXX, міжнародні по E.164. Email—стандартна RFC 5322 regex з постфільтрацією технічних адрес (noreply@, no-reply@, mailer-daemon@).
Джерела даних
Парсер налаштовується під конкретні джерела:
| Тип джерела | Приклад | Складність |
|---|---|---|
| Бізнес-каталоги | 2GIS, Яндекс.Карти (публічні дані) | Висока |
| Галузеві довідники | Будівництво, медичні портали | Середня |
| Сайти компаній | Сторінки «Контакти», «Про нас» | Низька |
| Соціальні профілі | LinkedIn, ВКонтакте (публічні) | Висока |
Для кожного типу джерела розробляються окремі spider-класи або обробники з власною логікою навігації та витяг.
Нормалізація та валідація
Сирі дані проходять кілька етапів обробки:
-
Нормалізація телефонів через бібліотеку
libphonenumber(Google)—приведення до єдиного формату E.164 - Валідація email—DNS MX-запит до домену для перевірки існування поштового сервера
- Дедупликація—порівняння по нормалізованим значеннях, не по вихідних строках
- Геокодування адрес—через Nominatim (OpenStreetMap) або Яндекс.Геокодер
Вигрузка та формати
Результати доступні у кількох форматах:
- CSV/XLSX—для імпорту в CRM
- JSON API—для інтеґрації з внутрішніми системами
- Прямий запис у PostgreSQL/MySQL з нормалізованою схемою
Терміни та обсяг
На парсер одного-двох джерел з нормалізацією та базовим зберіганням уходит 5–8 робочих днів. Якщо потрібна масштабована система під 10+ джерел з веб-інтерфейсом управління—від 3 тижнів.







