Сравните ноутбук и хостинговый процесс на двух разных уровнях:

УровеньВопрос
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 декодируют поддерживаемое кодирование, поэтому не распаковывайте их вывод повторно только из-за того, что заголовок называет его.

Похожие статьи