Proksi arxasında Requests cavabı pozulmuş görünür? Brotli dəstəyini yoxlayın
Kopyalanmış Accept-Encoding:br hostinqdəki Requests mühitinin dekoder dəstəyini üstələyə bilər.
Noutbuku və hostinq prosesini iki fərqli qatda müqayisə edin:
| Qat | Sual |
|---|---|
| Content-Encoding | Müştəri qaytarılan gzip/deflate/Brotli baytlarını aça bilirmi? |
| Charset | Açılmış baytlar necə mətnə çevrilir? |
Requests adətən gzip/deflate ilə işləyir; Brotli üçün quraşdırılmış dəstəklənən kitabxana tələb olunur. Əl ilə kopyalanmış Accept-Encoding, bu mühit onu dekodlaşdıra bilmədiyi halda br elan edə bilər. UTF-8 mətn seçimi Brotli-ni açmır.
Danışıqları qəsdən məhdudlaşdırdıqda:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Mövcud Session, HTTPS URL və tələb olunan başlıqlar/autentifikasiyadan istifadə edin. Hər iki maşında gedən Accept-Encoding, gələn Content-Encoding və paket dəstəyini müqayisə edin; çevirici vasitəçi köhnəlmiş metadatanı da verə bilər. Ayrı bir ictimai səhifə müqayisəsi, ictimai vasitəçilərə icazə verildiyi yerdə proksi URL-i üçün HTTP proksi siyahısı istifadə edə bilər, lakin miras qalmış proksi etimadnamələri, kopyalanmış hesab başlıqları və ya şəxsi gövdə məlumatları olmadan.
Əks halda normal müştəri danışığını üstün tutun. Requests-in rahat content/text interfeysləri dəstəklənən kodlaşdırmanı açır, ona görə başlıq onun adını çəkir deyə çıxışı yenidən açmayın.