Настройка обхода защиты от парсинга для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка обхода защиты от парсинга для 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка обхода защиты от парсинга для 1С-Битрикс

Источник данных обновил защиту — и парсер, работавший месяцами, перестал получать контент. Вместо HTML с ценами приходит страница с капчей, JavaScript-челленджем или пустой body. Это реальность промышленного парсинга: защитные системы развиваются, и парсер нужно адаптировать. Разберём основные типы защит и технические подходы к их обработке.

Типы защит и их признаки

JavaScript Challenge (Cloudflare, DataDome). Сервер отдаёт HTTP 503 с JS-кодом, который должен выполниться в браузере и установить cookie cf_clearance или datadome. Признак: body содержит <noscript> и window._cf_chl_opt или аналогичный обфусцированный скрипт.

Rate Limiting. HTTP 429 или 403 после N запросов за период. Может быть по IP, по cookie-сессии или по fingerprint. Признак: запросы работают первые минуты, потом блокируются.

Browser Fingerprinting. Сервер проверяет TLS fingerprint (JA3), порядок HTTP-заголовков, наличие JavaScript API (navigator, canvas). Обычный cURL с дефолтными настройками имеет характерный JA3, отличающийся от браузерного.

Honeypot-ссылки. Скрытые через CSS ссылки (display:none, visibility:hidden), по которым кликает только бот. Переход по такой ссылке — мгновенный бан IP.

Headless-браузер для JavaScript Challenge

Когда источник требует выполнения JS, HttpClient Битрикс бессилен — он не исполняет JavaScript. Решение — headless-браузер.

Puppeteer / Playwright запускаются как отдельный сервис (Node.js), парсер Битрикс обращается к нему по HTTP API. Схема:

  1. PHP-парсер отправляет URL на внутренний сервис: http://localhost:3000/render?url=...
  2. Node.js-сервис открывает страницу в Chromium, ждёт выполнения JS, получает cookies и отрендеренный HTML.
  3. Возвращает HTML и cookies в PHP.
  4. PHP-парсер использует полученные cookies для последующих запросов через обычный HttpClient — JS Challenge выдаёт cookie на 15-30 минут.

Это позволяет не гонять каждый запрос через браузер (медленно и ресурсоёмко), а получить «пропуск» один раз и использовать его для серии обычных HTTP-запросов.

Важно: headless-браузер нужно маскировать. Стандартный Puppeteer определяется по navigator.webdriver = true, отсутствию плагинов, характерным размерам окна. Используйте puppeteer-extra с плагином stealth или аналог для Playwright.

Ротация отпечатков

Для обхода fingerprinting недостаточно менять IP. Нужно менять TLS fingerprint. В PHP/cURL это делается через опции:

  • CURLOPT_SSLVERSION — задаёт версию TLS.
  • CURLOPT_SSL_CIPHER_LIST — задаёт порядок шифров, формирующий JA3.

Библиотека curl-impersonate (форк cURL) позволяет эмулировать TLS fingerprint конкретных браузеров (Chrome, Firefox, Safari). Устанавливается на сервер как замена стандартному cURL.

Обработка капчи

Если источник показывает CAPTCHA, варианты:

  • Сервис распознавания (2Captcha, Anti-Captcha) — парсер отправляет изображение, получает ответ через API, подставляет в форму. Стоимость: $2-3 за 1000 решений. Задержка: 10-30 секунд.
  • Снижение частоты — часто капча появляется как реакция на rate limiting. Уменьшение частоты запросов и ротация прокси могут убрать капчу полностью.

Интеграция с 2Captcha из PHP-парсера:

$taskId = file_get_contents("http://2captcha.com/in.php?key={$apiKey}&method=base64&body=" . base64_encode($captchaImage));
// Ожидание решения (polling)
$result = file_get_contents("http://2captcha.com/res.php?key={$apiKey}&action=get&id={$taskId}");

Защита от honeypot

Перед переходом по ссылке проверяйте computed styles элемента: display, visibility, opacity, position (за пределами viewport). Если парсер работает через DOM (DOMDocument в PHP), проверяйте inline-стили и классы. Если через headless-браузер — используйте getComputedStyle() для проверки видимости.

Что настраиваем за один день

  1. Диагностика типа защиты на конкретном источнике.
  2. Настройка headless-рендерера (если JS Challenge) или ротации заголовков (если fingerprinting).
  3. Интеграция с парсером Битрикс — получение cookies/HTML.
  4. Тестирование на реальном источнике, подбор задержек.
  5. Документирование поведения защиты для дальнейшей поддержки.