Перейти к содержимому

Cheerio: извлечение элементов без браузера

POST /v1/browser/cheerio загружает страницу обычным HTTP-запросом и разбирает HTML библиотекой cheerio — без запуска браузера. Запрос и ответ устроены так же, как у Scrape, но вызов выполняется за доли секунды и стоит дешевле. Подходит для страниц, где нужная разметка есть в исходном HTML: серверный рендеринг, статические сайты, большинство интернет-магазинов и блогов.

Окно терминала
curl -X POST "https://proxy.seyka.ru/v1/browser/cheerio" \
-H "Authorization: Bearer $SEYKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"elements": [{"selector": "title"}, {"selector": "h1"}, {"selector": "a[href]"}]
}'
Параметр Тип По умолчанию Описание
elements array — обязательный, минимум один объект {"selector": "…"}
url string — адрес страницы; передаётся url или html, но не оба
html string — готовая разметка для разбора — без сетевого запроса
headers object — дополнительные HTTP-заголовки запроса к сайту, например {"Accept-Language": "ru-RU"}
timeout integer 30000 таймаут загрузки в мс, 1000–60000
allowInsecureTLS boolean false загрузить сайт с недействительным сертификатом

Параметры браузера — viewport, waitForSelector, cookies и другие — здесь не используются и игнорируются.

{
"data": [
{
"selector": "h1",
"results": [
{
"html": "Example Domain",
"text": "Example Domain",
"attributes": []
}
]
}
],
"meta": {
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"status": 200,
"redirected": false,
"redirectChain": []
}
}
Поле Описание
data[].results[].html внутренний HTML элемента
data[].results[].text текстовое содержимое
data[].results[].attributes все атрибуты, массив {name, value}
meta только для url: исходный и конечный адрес, код сайта, цепочка редиректов (from, to, status) и botProtection, если по пути была пройдена антибот-проверка с куки

Координат элементов (width, height, top, left) нет — без браузера страница не отрисовывается.

Заголовки ответа: X-Response-Code — код сайта, X-Response-URL — конечный адрес, X-Response-Redirected — true, если были редиректы.

  • Только HTML. Принимаются ответы text/html и application/xhtml+xml. Без Content-Type или с application/octet-stream решает расширение адреса: .html и .htm принимаются, .json, .xml, .txt, .pdf и подобные отклоняются; адрес без расширения без Content-Type читается как HTML, с octet-stream — отклоняется. Тип берётся из первого значения заголовка: склеенный application/json, text/html отклоняется. Для JSON, XML, текста и PDF используйте Smart Scrape.
  • Кодировка. Тело декодируется по объявленной кодировке — заголовок, затем <meta charset>, иначе UTF-8, — поэтому сайты в windows-1251 читаются корректно.
  • Размер. Читается не больше 4 МиБ; страница крупнее завершает вызов ошибкой.
  • Редиректы проходятся вручную: не больше 10 запросов, то есть не больше 9 редиректов, с проверкой каждого адреса на внутренние сети.
  • Общий кэш документов со Smart Scrape. Если в запросе нет headers и allowInsecureTLS, недавно загруженная страница может быть взята из общего кэша документов, а свежезагруженная — попасть в него.
  • Скрипты и стили не видны. В таком запросе успешно загруженный HTML перед разбором очищается так же, как в Smart Scrape: script, style, noscript, template, iframe и обработчики событий удаляются. Если нужны именно они — например, JSON-LD в script[type="application/ld+json"], — используйте Scrape или SEO-формат Smart Scrape, который отдаёт JSON-LD готовым.

Ошибки загрузки — JSON с error, errorKind и code, см. ошибки Browser API.

Каждый вызов оплачивается по цене Cheerio — одной из самых низких в Browser API; кэша ответов нет (X-Cache: DISABLED). Цены — в таблице цен.