Skip to main content
POST https://api.acedata.cloud/webextrator/render WebExtrator API для рендерингу веб-сторінок — це сервіс рендерингу веб-сторінок на основі безголового Chromium. Надсилаючи URL, ви отримуєте повністю відрендерений HTML (включаючи вміст, інжектований через JS), чистий текст, заголовок сторінки та остаточний URL. Render є найнижчим рівнем інтерфейсу WebExtrator. Якщо вам потрібні структуровані результати витягування (основний текст статті, ціни на товари, інгредієнти рецептів тощо), будь ласка, використовуйте /webextrator/extract — він працює на тій же основі рендерингу, але проходить через повний набір типізованих конвеєрів витягування.

Процес подачі заявки

Щоб використовувати сервіс WebExtrator, спочатку перейдіть до консолі Ace Data Cloud, щоб отримати ваш API Token, зберігши його для подальшого використання. Якщо ви ще не увійшли в систему або не зареєстровані, вас автоматично перенаправлять на сторінку входу, запрошуючи вас зареєструватися та увійти. Після завершення ви будете автоматично повернені на поточну сторінку. Один API Token дозволяє викликати всі сервіси платформи, не потрібно окремо подавати заявку на кожен сервіс. Перший запит на отримання токена надає безкоштовний ліміт, щоб ви могли безкоштовно протестувати; якщо ліміт вичерпано, ви можете поповнити загальний баланс в консолі.
📘 Повна документація: Сервіс WebExtrator →

Аутентифікація

Всі інтерфейси WebExtrator використовують стандартну аутентифікацію Bearer Token:

Параметри запиту

Платформні контракти використовують snake_case. Внутрішні сервіси рендерингу підтримують camelCase, але зовнішні виклики завжди використовують snake_case.

Синхронна відповідь

Асинхронна відповідь

async=true (або надано callback_url) негайно повертає (HTTP 200):
Результати будуть надіслані через POST на callback_url (якщо він налаштований), або через /webextrator/tasks активне запитування.

Структура зворотного виклику

Платформа POST надсилає повністю таку ж оболонку, як і в синхронному режимі, на callback_url, Content-Type: application/json. Повернення будь-якого 2xx вважається підтвердженим; 5xx буде повторюватися з експоненційною затримкою приблизно 5 хвилин.

Відповідь про помилку

Структура помилки:

Приклад

cURL

Python (requests)

Node.js (fetch)

Асинхронний + зворотний виклик

Негайно повертає { "success": true, "task_id": "...", "trace_id": "...", "started_at": 1777717800.123 }; коли завдання завершиться, платформа надішле повний результат на ваш callback_url.

Примусове обходження кешу

Поради та підводні камені

  • Важливо правильно вибрати wait_until. networkidle найстабільніший, але найповільніший; domcontentloaded швидкий, але може пропустити асинхронно завантажений контент; load підходить для традиційних статичних сторінок.
  • Кеш-ключ ігнорує async. Синхронні та асинхронні запити до одного й того ж URL потрапляють в один і той же кеш-елемент, випадкове перемикання не призведе до збою.
  • Кеш-ключ ігнорує bypass_cache та cache_ttl_seconds. Ці два є перемикачами, не впливають на вміст відповіді.
  • cookies та headers кешуються окремо. Налаштування цих двох призведе до невдачі при першому попаданні однакових комбінацій.
  • Важкі SPA часто перевищують стандартні 30 секунд. Рекомендується timeout: 60, wait_until: "domcontentloaded", delay: 4, а також використовувати wait_for_selector для очікування дійсно важливих елементів.
  • block_resources є найшвидшим шляхом для зменшення затримки. За замовчуванням вже заблоковані зображення / шрифти / медіа; якщо ви витягуєте, не покладаючись на CSS-розмітку, додавання stylesheet може ще більше прискорити процес.