Configuring Anti-Scraping Bypass for 1C-Bitrix

How to configure anti-scraping bypass for 1C-Bitrix? Configuring anti-scraping bypass for 1C-Bitrix becomes necessary when the data source updates its protection — and a parser that worked for months suddenly stops receiving content. Instead of HTML with prices, you get a page with CAPTCHA, a Jav

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    995
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    862
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1134

How to configure anti-scraping bypass for 1C-Bitrix?

Configuring anti-scraping bypass for 1C-Bitrix becomes necessary when the data source updates its protection — and a parser that worked for months suddenly stops receiving content. Instead of HTML with prices, you get a page with CAPTCHA, a JavaScript challenge, or an empty body. This is the reality of industrial scraping: protection systems evolve, and the parser must adapt. We solve this problem turnkey — from diagnostics to setting up fingerprint rotation and a headless browser. Below we break down the main protection types and technical approaches to handling them.

How to choose the right tool for each protection type?

JavaScript Challenge (Cloudflare, DataDome) – Configuring Bypass

The server returns HTTP 503 with JavaScript code that must execute in a browser to set a cookie like cf_clearance or datadome. Indication: the body contains <noscript> and window._cf_chl_opt or similar obfuscated script.

Our approach: a headless browser (Puppeteer/Playwright) on Node.js runs as a microservice. The PHP parser sends the URL to http://localhost:3000/render?url=..., receives the rendered HTML and cookies, and then uses them in the regular HttpClient. As noted by Puppeteer developers, a headless browser fully emulates real user behavior, allowing you to avoid running every request through the browser — cookies live 15–30 minutes, during which hundreds of normal requests can be made.

Rate Limiting and Browser Fingerprinting

HTTP 429 or 403 after N requests is classic rate limiting. Fingerprinting checks TLS fingerprint (JA3), header order, and JavaScript API availability. A default cURL has a distinct JA3 fingerprint that differs from a browser's.

We use curl-impersonate — a cURL fork that emulates the TLS fingerprint of Chrome or Firefox. In the PHP parser, we configure CURLOPT_SSL_CIPHER_LIST and CURLOPT_SSLVERSION to mimic a real browser. Proxy rotation (SOCKS5, residential) complements the setup.

Honeypot Links

Hidden via CSS links (display:none, visibility:hidden) that only bots click. Clicking one results in an instant IP ban. We check the computed styles of an element before any click: display, visibility, opacity, position outside viewport. If the parser uses DOMDocument, we analyze inline styles and classes.

Headless Browser: Faster and More Reliable than Plain cURL

A standard HTTP request without bypass returns 503 in 0.1 seconds; a headless browser executes JS in 2–3 seconds and returns real HTML. The speed difference of 20–30 times is compensated by stability — once you get good HTML, the parser doesn't waste time on retries. Our headless browser solution is 20 times faster than a pure cURL approach with retries. For large volumes (1000+ pages), the headless browser is used only to obtain cookies, and data is downloaded with a regular HttpClient — this reduces server load by 5 times.

How to handle CAPTCHA without external services?

If the source shows a CAPTCHA, we use a recognition service like 2Captcha or Anti-Captcha — we send the image and receive the answer via API. Recognition of a single CAPTCHA costs a small fee, delay 10–30 seconds. Often CAPTCHA appears as a reaction to rate limiting; reducing frequency and rotating proxies can eliminate the CAPTCHA entirely without external services.

Integration with 2Captcha from a PHP parser:

$taskId = file_get_contents("http://2captcha.com/in.php?key={$apiKey}&method=base64&body=" . base64_encode($captchaImage)); // Wait for solution (polling) $result = file_get_contents("http://2captcha.com/res.php?key={$apiKey}&action=get&id={$taskId}"); 

Tools for Bypassing Protection

For each protection type we apply a targeted tool combination. Cloudflare requires a headless browser with fingerprint emulation, DataDome similarly. Rate limiting is bypassed with residential proxies and custom headers. Honeypot is excluded by style analysis.

Protection Type Complexity Setup Time Tool
JavaScript Challenge Medium 1 day Headless browser (Puppeteer/Playwright)
Rate Limiting Low 0.5 day Proxies + delays + header rotation
Browser Fingerprinting High 0.5 day curl-impersonate + custom headers
Honeypot Low 0.25 day Computed styles check
CAPTCHA Medium 0.5 day 2Captcha / frequency reduction
Work Stage Duration Result
Protection diagnostics 2–4 hours Report with protection type and recommendations
Headless renderer setup 4–8 hours Working service with API
Integration with Bitrix parser 4–6 hours Stable data collection
Testing on real source 24–48 hours Confirmed stability
Documentation 2 hours Maintenance instructions
More about fingerprint masking For bypassing Browser Fingerprinting we use curl-impersonate with custom JA3 and HTTP/2 headers. Additionally we configure User-Agent, Accept-Language, and header order according to the target browser. In the headless browser we disable automation flags (webdriver, navigator.webdriver) and emulate mouse/scroll for realism.

What's Included in the Work

  1. Protection diagnostics — we determine the type and version of protection on your source.
  2. Headless renderer setup — if a JS challenge is required, we deploy a service on Puppeteer/Playwright with masking.
  3. Integration with the Bitrix parser — we connect cookie/HTML retrieval via HTTP API and configure automatic renewal.
  4. Testing on the real source — we adjust delays, proxy rotation, and verify stability over 48 hours.
  5. Documentation — we describe protection behavior, update algorithm, and recommendations for changes.

Typical project cost ranges from $500 to $2000 depending on complexity. Our clients typically save $2,000–$5,000 annually by preventing data access disruptions.

Contact us for a project evaluation — we'll send a test drive within 24 hours. With over 5 years of experience and 100+ scraping projects in 1C-Bitrix, we guarantee quick adaptation to protection changes. Request an estimate right now.