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 պրոքսիների ցանկ-ը իր պրոքսի URL-ի համար, որտեղ հանրային միջնորդները թույլատրված են, առանց ժառանգված պրոքսի հավատարմագրերի, պատճենված հաշվի վերնագրերի կամ մասնավոր մարմնի տվյալների։
Հակառակ դեպքում նախընտրեք հաճախորդի սովորական բանակցությունը։ Requests-ի հարմար content/text ինտերֆեյսները վերծանում են աջակցվող կոդավորումը, այնպես որ մի ապասեղմեք դրանց ելքը նորից միայն այն պատճառով, որ վերնագիրը նշում է դրա անունը։