Реферальна програма →
ГоловнаГлосарійHeadless-браузер
Глосарій

Headless-браузер

Повноцінний веббраузер, що працює без графічного інтерфейсу, керований кодом для завантаження, рендерингу й взаємодії зі сторінками.

Headless-браузер - це повноцінний браузер, зазвичай Chrome або Firefox, що працює без видимого вікна й керований програмно. Він завантажує сторінки, виконує JavaScript і рендерить DOM рівно так, як це робив би звичайний браузер, але під керуванням скрипта. Playwright, Puppeteer і Selenium - типові інструменти для керування ними.

Headless-браузери існують, щоб скрапити сучасні сайти, що будують контент на JavaScript. Простий HTTP-запит повертає вихідний HTML, який для багатьох односторінкових застосунків майже порожній - реальні дані підвантажуються пізніше через JavaScript. Headless-браузер виконує цей JavaScript, тож ви скрапите повністю відрендерену сторінку замість порожньої оболонки.

Компроміс - ціна й виявлюваність. Рендеринг повної сторінки використовує набагато більше CPU, пам’яті й трафіку, ніж простий HTTP-запит, тому headless-скрапінг повільніший і дорожчий у масштабі. Headless-браузери також несуть відбитки автоматизації (прапорці navigator.webdriver, незвичні WebGL-рендерери), які антибот-системи спеціально шукають.

Використовуйте headless-браузер, коли ціль справді потребує рендерингу JavaScript, і поєднуйте його з резидентними проксі й укріпленням відбитка, щоб він мав вигляд браузера реального користувача. Для статичного HTML або доступних API прості HTTP-запити драматично швидші, і їм варто віддавати перевагу.

A real browser with no window

A headless browser is a normal browser engine running without a visible interface, driven by code through Playwright, Puppeteer or Selenium. It executes JavaScript, renders pages and holds cookies exactly as the visible version does.

That makes it the tool for sites that build their content in the browser rather than on the server. An HTTP client fetching such a page receives a shell with no data in it.

The cost is traffic and time. A headless browser downloads scripts, styles, fonts and images unless told otherwise, so a page that would be 80 KB as HTML becomes several hundred kilobytes, which matters directly on metered proxies.

Headless mode also used to be detectable through obvious signals. Modern versions are much closer to the visible browser, but automation frameworks still leave traces that dedicated defences look for.

Running one through our proxies

Per-context proxies are the feature worth having, because they let one browser hold several identities:

Playwright with a proxy per context

ctx = browser.new_context(
    proxy={
        "server": "http://proxy.sotaproxy.com:10000",
        "username": "login_c_US_s_7_ttl_1h",
        "password": "password",
    },
    locale="en-US", timezone_id="America/New_York",
)
  • Block images, media and fonts through request routing. On residential this cuts the bill several times over.
  • Use a sticky session for the life of the context. A rotation mid-page loads half the assets from another address.
  • Match locale and timezone to the proxy country, or the address and the browser will contradict each other.
  • For account work prefer an antidetect browser over raw headless automation: it adds fingerprint and storage isolation you would otherwise build yourself.

Headless misconceptions

Headless is not required for most scraping

If the data is in the HTML or an API, an HTTP client is faster and much cheaper.

It does not hide automation by itself

Framework traces remain, and defences look for them specifically.

Traffic is not comparable to curl

A rendered page can be five times the bytes of its HTML.

A proxy does not fix detection

The address and the browser are separate signals and both are checked.

Дивись на практиці

Готовий використовувати headless-браузер?

SotaProxy надає доступ до ротуючих резидентських, мобільних, дата-центр та ISP проксі. Без мінімальних платежів.

Почати