Все статьиРуководства7 мин

Скрейпинг профилей компаний для B2B-лидогенерации

Как извлекать данные о компаниях из деловых социальных сетей и каталогов для B2B-продаж: обход антибот-защиты, TLS-фингерпринтинг, Python-скрипт и масштабирование.

Команда InfraProxy

20 февраля 2026 г.

#B2B#лидогенерация#профили компаний#Python#API для скрейпинга#TLS

Почему скрейпинг деловых сетей ломается в 2026 году

Деловые социальные сети и профессиональные каталоги — ценный источник B2B-лидов: профили компаний, численность сотрудников, отрасль, геолокация, контакты. При этом эти платформы относятся к числу самых защищённых. В 2026 году попытки автоматического сбора данных без специализированного стека почти всегда заканчиваются блокировками.

Агрессивная антибот-защита. Деловые платформы используют многоуровневую защиту: детектирование headless-браузеров, анализ поведения, блокировку по IP и по сессии. Обычный HTTP-клиент получает 403 или CAPTCHA уже после нескольких запросов.

JavaScript-зависимый контент. Карточки компаний, описания, контакты и блоки вакансий рендерятся в браузере. Без выполнения JavaScript HTML содержит пустой каркас.

Rate limiting. Ограничения на частоту запросов и подозрительные паттерны приводят к временной блокировке аккаунта или IP.

Для стабильного сбора нужен API для скрейпинга с полным стеком обхода: резидентные прокси, TLS-фингерпринтинг, JavaScript-рендеринг и решение CAPTCHA.

Полноценный Python-скрипт за 12 строк

Интеграция с Scraper API сводится к минимальному коду:

import httpx
import os

API_KEY = os.environ.get("SCRAPER_API_KEY")
url = "https://example.com/company/acme-corp"

payload = {
    "url": url,
    "use_antibot": True,
    "tls_profile": "chrome124",
    "use_js_render": True,
    "solve_captcha": True,
    "extract_rules": {
        "name": "h1, .company-name",
        "industry": ".industry, [data-industry]",
        "employees": ".employee-count, .headcount",
        "location": ".headquarters, .location",
        "description": ".about-section, .company-description",
        "website": "a[href*='website']@href"
    }
}

resp = httpx.post(
    "https://api.example.com/v1/scrape",
    json=payload,
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60.0
)
data = resp.json()
print(data.get("extract"))

Один запрос возвращает структурированный JSON с полями компании. Вся логика обхода защит выполняется на стороне API.

Ключевые флаги API

| Параметр | Назначение | |----------|------------| | use_antibot | Включение стека обхода антибот-защиты | | tls_profile | TLS-отпечаток браузера (chrome124, firefox) | | use_js_render | Рендеринг JavaScript для динамического контента | | solve_captcha | Автоматическое решение CAPTCHA при появлении | | session_id | Привязка запросов к одной сессии (один IP, общие cookies) |

TLS-фингерпринтинг как первая линия обороны

TLS-отпечаток (JA3/JA4) — один из главных сигналов для антибот-систем. Python-клиент с OpenSSL имеет отпечаток, отличный от Chrome или Firefox. Несоответствие User-Agent и TLS сразу выдаёт автоматизацию.

Параметр tls_profile: "chrome124" указывает API использовать TLS-отпечаток актуальной версии Chrome. Это значительно снижает долю блокировок ещё до проверки поведения и CAPTCHA.

Компромиссы: латентность, токены, рендеринг

Латентность. Запрос с JavaScript-рендерингом занимает 5–15 секунд вместо 1–2 при простом HTTP. Для batch-обработки это компенсируется параллельностью.

Стоимость токенов. Рендеринг и решение CAPTCHA увеличивают стоимость запроса. Планируйте бюджеты под объёмы.

Зависимость от рендеринга. Для деловых сетей use_js_render фактически обязателен — без него контент не подгружается. Альтернативы нет.

Асинхронный скрейпинг в масштабе (10K+ страниц)

При объёмах в тысячи профилей используйте асинхронный подход с ограничением concurrency:

import asyncio
import httpx

async def scrape_companies(urls: list[str], max_concurrent: int = 10) -> list[dict]:
    sem = asyncio.Semaphore(max_concurrent)

    async def fetch_one(client: httpx.AsyncClient, url: str):
        async with sem:
            payload = {
                "url": url,
                "use_antibot": True,
                "tls_profile": "chrome124",
                "use_js_render": True,
                "solve_captcha": True,
                "extract_rules": extract_rules
            }
            resp = await client.post(API_URL, json=payload, headers={"Authorization": f"Bearer {API_KEY}"})
            resp.raise_for_status()
            return resp.json().get("extract")

    async with httpx.AsyncClient(timeout=90.0) as client:
        tasks = [fetch_one(client, url) for url in urls]
        return await asyncio.gather(*tasks)

Ограничьте max_concurrent (10–15), чтобы не провоцировать rate limiting на целевой платформе.

Batch API с webhook-колбэками

Для больших объёмов удобнее batch-режим:

  1. Отправьте массив URL в batch-эндпоинт
  2. Получите job_id
  3. Укажите webhook URL для уведомления о готовности
  4. Скачайте результат по завершении

Так не нужно опрашивать статус вручную, а обработка выполняется фоном.

Важные нюансы

session_id для многостраничного сбора

При обходе нескольких страниц одной компании (профиль, вакансии, сотрудники) используйте один и тот же session_id для всех запросов. API будет направлять трафик через один IP и сохранять cookies — снижается вероятность CAPTCHA и блокировок.

Хрупкость extract_rules

Селекторы в extract_rules зависят от структуры DOM. При редизайне платформы правила могут перестать работать. Настройте мониторинг пустых или неполных ответов и имейте запасной вариант (например, extract_schema).

Стоимость solve_captcha

Каждый вызов решения CAPTCHA тарифицируется отдельно. Оптимизируйте: резидентные прокси и session_id уменьшают долю запросов, доходящих до CAPTCHA.

Резюме

  • Деловые сети в 2026 году защищены антибот-системами, JS-рендерингом и rate limiting — нужен специализированный API
  • Минимальный Python-скрипт: URL + extract_rules + флаги use_antibot, tls_profile, use_js_render, solve_captcha
  • TLS-фингерпринтинг — первая линия обороны, без него блокировки высоки
  • Учитывайте: латентность, стоимость, зависимость от рендеринга
  • Масштабируйте через асинхронные запросы или batch API с webhook
  • Важно: session_id для многостраничного сбора, хрупкость селекторов, стоимость solve_captcha

InfraProxy Scraper API поддерживает TLS-профили, обход антиботов и извлечение профилей компаний для B2B-лидогенерации. Оставьте заявку.

Нужны надёжные прокси для вашего проекта?

InfraProxy предоставляет серверные и резидентные прокси для российского бизнеса. Договор, постоплата, техподдержка.