Python SDK: Response: ответ сайта
Response возвращают методы HTTP-клиента. Поля status, body, headers, final_url, from_cache, duration_ms и snapshot_uuid доступны без дополнительных запросов.
Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.
Как получить объект
response = ctx.http().get(ctx.param('catalog_url', 'https://example.com/catalog'))
Методы
ok
response.ok() -> bool
Аргументы не нужны.
Результат: bool.
Проверить, что HTTP-статус находится в диапазоне 200–299 и ответ не распознан как страница проверки CAPTCHA. Одна только страница с HTTP 200 ещё не означает, что данные доступны.
result = response.ok()
dom
response.dom() -> Dom
Аргументы не нужны.
Результат: Dom. Объект SDK: используйте его методы, не передавайте целиком в emit.
Разобрать тело ответа как HTML с учётом конечного URL после перенаправлений.
result = response.dom()
json
response.json() -> Any
Аргументы не нужны.
Результат: Any.
Разобрать тело ответа как JSON.
result = response.json()
header
response.header(name) -> str | None
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
name |
str |
Да | Имя поля, заголовка, файла, секрета или метрики по назначению метода. |
Результат: str | None.
Получить заголовок ответа без учёта регистра имени.
result = response.header('Content-Type')
Свойства
| Свойство | Тип |
|---|---|
status |
int |
body |
str |
final_url |
str |
headers |
dict[str, str | list[str]] |
from_cache |
bool |
duration_ms |
int |
snapshot_uuid |
str | None |
status содержит итоговый HTTP-код, body текст ответа, headers полученные значения заголовков, final_url адрес после перенаправлений. from_cache отмечает кэш, duration_ms длительность запроса в миллисекундах, snapshot_uuid идентификатор снимка либо None. Отсутствующий заголовок даёт None. Ошибка JSON не подменяется пустым результатом.
Ошибки и контекст выполнения
Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.