API извлечения HTML — Playwright Chromium как сервис
Передайте URL — получите готовый HTML после исполнения JavaScript. Обрабатывайте Cheerio, Readability.js или любым своим парсером. УноАПИ.ru.
Headless-браузер как API. Playwright Chromium исполняет JS, ждёт `networkidle`, возвращает итоговый HTML. Дальше его парсит ваша сторона — Cheerio, Readability.js, LLM-ридер — но без необходимости держать собственный Playwright-кластер.
Возможности
Исполняется JavaScript
Страницы с клиентским рендером (SPA, React/Vue/Next.js) обрабатываются как обычные — дожидаемся networkidle или нужного события.
Контроль загрузки
gotoOptions.waitUntil: load / domcontentloaded / networkidle / commit. Плюс viewport — размер, DPR — чтобы адаптивные страницы рендерились в нужной раскладке.
Cookies и заголовки
Прокидывайте сессионные cookie и произвольные HTTP-заголовки. Скрейпите страницы, закрытые авторизацией, без поднятия собственного браузера.
Пример запроса
curl -X POST "https://proxy.unoapi.ru/v1/browser/content" \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://habr.com/ru/articles/1/", "gotoOptions": {"waitUntil": "networkidle"}}' \
--output page.htmlconst res = await fetch('https://proxy.unoapi.ru/v1/browser/content', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.UNOAPI_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://habr.com/ru/articles/1/',
gotoOptions: { waitUntil: 'networkidle' },
}),
});
const html = await res.text();import httpx, os
r = httpx.post(
"https://proxy.unoapi.ru/v1/browser/content",
json={
"url": "https://habr.com/ru/articles/1/",
"gotoOptions": {"waitUntil": "networkidle"},
},
headers={"Authorization": f"Bearer {os.environ['UNOAPI_KEY']}"},
)
html = r.textСравнение
| Параметр | УноАПИ.ru | Официальный API | Международные сервисы |
|---|---|---|---|
| Рендер JS | ✓ Playwright Chromium | — | ✓ (Playwright / Puppeteer) |
| Режим ожидания | ✓ waitUntil (4 опции) | — | Зависит от вендора |
| Viewport / DPR | ✓ произвольный | — | Обычно ✓ |
| Cookies / headers | ✓ | — | ✓ |
| Нужна своя инфра? | Нет | Да (Chromium-кластер) | Нет |
| Оплата | Рубли, по факту | — | USD, подписка |
Часто задаваемые вопросы
Что именно возвращается?
Полный HTML страницы после рендеринга JavaScript — такой, какой увидел бы пользователь в браузере. Парсите, очищайте или извлекаете текст уже на своей стороне.
Чем это отличается от обычного скрейпинга curl?
curl отдаёт исходный HTML без исполнения JS — на SPA-сайтах это пустая оболочка. УноАПИ.ru поднимает Playwright Chromium, дожидается отрисовки, возвращает финальный DOM. Никакой собственной инфраструктуры headless-браузера не нужно.
Выполняется ли JavaScript?
Да, Playwright Chromium дожидается `gotoOptions.waitUntil` (load / domcontentloaded / networkidle / commit). SPA-сайты (React, Vue, Next.js) обрабатываются как обычные статические страницы.
Как очистить HTML от меню, рекламы и прочего шума?
Мы отдаём «сырой» отрендеренный HTML. Дальше пропускайте его через Cheerio, Readability.js, `@mozilla/readability` или любой LLM-ридер — это отделяет ответственность рендеринга от ответственности извлечения и даёт вам полный контроль.
Можно ли передать cookie или HTTP-заголовки?
Да. В теле POST-запроса передаёте `cookies` (массив `{ name, value, domain }`) и `extraHTTPHeaders` (объект). Позволяет скрейпить страницы, требующие авторизации.
Есть ли лимит на размер страницы?
Жёсткого лимита нет. Тяжёлые страницы (>10MB) рендерятся дольше — разумнее переключить `gotoOptions.waitUntil` на `domcontentloaded` или ограничить ресурсы в теле запроса.
Сколько стоит один запрос?
Актуальная цена — на /pricing. Есть ежемесячные бесплатные кредиты.
Готовы попробовать?
Бесплатные месячные кредиты — без карты, без подписки.