ノート PC とホスト側のプロセスを、2 つの異なる層で比較します:

層確認事項
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 プロキシ一覧 を代理 URL の取得に使えますが、継承したプロキシ資格情報、コピーしたアカウントヘッダー、非公開の本文データを持ち込まないでください。

それ以外は通常のクライアント交渉を優先してください。Requests の便利な content/text インターフェースは対応する符号化を伸張するので、ヘッダーに名前があるという理由だけで出力を再度伸張しないでください。

関連記事