Ноутбук пен хостингтегі процесті екі түрлі деңгейде салыстырыңыз:

ДеңгейСұрақ
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 және бума қолдауын салыстырыңыз; түрлендіретін делдал ескірген метадеректерді де беруі мүмкін. Бөлек жалпыға ашық бетті салыстыру, жалпыға ашық делдалдар рұқсат етілген жерде прокси URL үшін HTTP проксилер тізімі қолдана алады, бірақ мұрагерлік прокси тіркелгі деректерін, көшірілген тіркелгі тақырыптарын немесе жеке дене деректерінсіз.

Әйтпесе клиенттің қалыпты келіссөзін таңдаңыз. Requests-тің қолайлы content/text интерфейстері қолдау көрсетілетін кодтауды декодтайды, сондықтан тақырып оның атын атағаны үшін ғана олардың шығысын қайта ашпаңыз.

Қатысты мақалалар