Noutbuku və hostinq prosesini iki fərqli qatda müqayisə edin:

QatSual
Content-EncodingMüştəri qaytarılan gzip/deflate/Brotli baytlarını aça bilirmi?
CharsetAçı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.

Əlaqəli məqalələr