Ответ Requests выглядит искажённым за прокси? Проверьте поддержку Brotli
Скопированный Accept-Encoding:br может опережать поддержку декодера в хостинговой среде Requests.
Сравните ноутбук и хостинговый процесс на двух разных уровнях:
| Уровень | Вопрос |
|---|---|
| Content-Encoding | Может ли клиент распаковать возвращённые байты gzip/deflate/Brotli? |
| Charset | Как распакованные байты превращаются в текст? |
Requests обычно обрабатывает gzip/deflate; для Brotli нужна установленная поддерживаемая библиотека. Скопированный вручную Accept-Encoding может объявлять br, хотя эта среда не умеет его декодировать. Выбор текста UTF-8 не распаковывает Brotli.
Когда переговоры намеренно ограничивают:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Используйте существующий Session, HTTPS-URL и необходимые заголовки/аутентификацию. Сравните исходящий Accept-Encoding, входящий Content-Encoding и поддержку пакетов на обеих машинах; преобразующий посредник тоже может отдавать устаревшие метаданные. Отдельное сравнение публичной страницы может использовать Список HTTP-прокси для адреса прокси там, где публичные посредники разрешены, без унаследованных учётных данных прокси, скопированных заголовков аккаунта или приватных данных тела.
В остальных случаях предпочитайте обычные переговоры клиента. Удобные интерфейсы content/text в Requests декодируют поддерживаемое кодирование, поэтому не распаковывайте их вывод повторно только из-за того, что заголовок называет его.