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 може ще більше прискорити процес.