Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak

Парсинг захищеного SPA-сайту, Обхід Cloudflare та антибот-систем

Мета: Зібрати 100% точні дані про понад 1000 експонентів (назва, країна, номер стенда, приховані email та телефони, категорії) з офіційного сайту Salone del Mobile.

Головні виклики:

Агресивний антибот-захист (Cloudflare): Стандартні запити (requests/httpx) повертали 403 Forbidden. Звичайні headless-браузери (Selenium, Playwright) та навіть фреймворки на кшталт undetected-chromedriver миттєво блокувалися.

Складна SPA-архітектура (React / Next.js): На сайті не було стандартних HTML-посилань (). Уся навігація відбувалася виключно через обробники подій React (onClick), що робило традиційний збір URL неможливим. Крім того, контактні дані були заховані в несемантичних тегах (наприклад, ).
Моє рішення:
Щоб досягти ідеальної точності та обійти захист, я розробив кастомний гібридний підхід:

Підключення через Chrome DevTools Protocol (CDP): Замість запуску нового екземпляра автоматизованого браузера, мій скрипт використовував Playwright для підключення до вже запущеної, "живої" сесії Google Chrome (http://localhost:9222). Це дало 100% "траст-фактор" легітимного користувача (разом із реальними cookies, історією та відбитками Canvas). Cloudflare було обійдено без жодної розв'язаної капчі.

Інтелектуальна навігація: Скрипт візуально імітував поведінку людини — перехоплював динамічні локатори, фізично клікав мишкою для виклику React-станів та використовував внутрішній роутер сайту для повернення до списку, зберігаючи пагінацію.

Парсинг HTML: Захоплений стан сторінки оброблявся через BeautifulSoup та складні регулярні вирази (Regex) для точного витягування "битих" або погано відформатованих посилань та номерів телефонів.

Використані технології:

Python 3.12

Playwright (Sync API): взаємодія з DOM та підключення через CDP.

BeautifulSoup4 & Regex: точний пошук та витягування даних.

Pandas: структурування та експорт даних у чистий CSV (UTF-8 з BOM) та Excel.

Результат:
Скрипт повністю автономно зібрав та ідеально відформатував дані понад 1200 компаній. Створена архітектура дозволяє масштабувати парсинг без ризику отримати бан по IP.
Деталі роботи
Додано 12 березня
132 перегляди
Фрилансер
Віктор Гайоха
Україна Чернівці  2  0

Вільний для роботи Вільний для роботи
2 Сейфи завершені
На сервісі 2 роки