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). Цены — в таблице цен.