Bandingkan komputer riba dan proses yang dihoskan pada dua lapisan berbeza:

LapisanSoalan
Content-EncodingBolehkah klien menyahmampat bait gzip/deflate/Brotli yang dikembalikan?
CharsetBagaimana bait yang dinyahmampat menjadi teks?

Requests biasanya mengendalikan gzip/deflate; Brotli memerlukan pustaka dipasang yang disokong. Accept-Encoding yang disalin secara manual boleh mengiklankan br sedangkan persekitaran ini tidak dapat menyahkodnya. Pemilihan teks UTF-8 tidak menyahmampat Brotli.

Apabila perundingan dihadkan dengan sengaja:

response = session.get(
    url,
    proxies={"https": "http://proxy.example:8080"},
    headers={"Accept-Encoding": "gzip, deflate"},
    timeout=30,
)
response.raise_for_status()

Gunakan Session sedia ada, URL HTTPS dan pengepala/pengesahan yang diperlukan. Bandingkan Accept-Encoding keluar, Content-Encoding masuk dan sokongan pakej pada kedua-dua mesin; perantara yang mengubah juga boleh membekalkan metadata lapuk. Perbandingan halaman awam yang berasingan boleh menggunakan Senarai proksi HTTP untuk URL proksinya di tempat perantara awam dibenarkan, tanpa kelayakan proksi warisan, pengepala akaun yang disalin atau data badan peribadi.

Jika tidak, utamakan perundingan klien biasa. Antara muka content/text Requests yang mudah menyahkod pengekodan yang disokong, jadi jangan menyahmampat outputnya sekali lagi hanya kerana pengepala menamakannya.

Artikel berkaitan