2010-07-11 2 views
1

Après avoir fait un post pour vous connecter à mon site Web, j'essaie de faire un sur mon site et je reçois un tas d'ordures " 0 ` &) 붋 .... "au lieu des données de mon site. Pourquoi donc? Comment puis-je résoudre ce problème?Obtenir une demande en utilisant PyCurl après la connexion au site Web

+1

Code, s'il vous plaît? (15 caractères) – amphetamachine

+0

Il semble que vous ayez un mauvais en-tête de type de contenu, esp. la partie de codage de texte. Comment est cet en-tête, exactement? Et (étant donné un navigateur qui devine l'encodage correctement car il vous permet de voir votre message), quel est le jour du navigateur l'encodage? –

Répondre

4

Évidemment, un thread mort, mais si quelqu'un d'autre trébuche à travers cela, les données funky comme cela est probablement compressé avec zlib ou gzip. Si vous utilisez pycurl, cela devrait faire l'affaire:

import pycurl 

ch = pycurl.Curl() 
ch.setopt(pycurl.URL, 'http://example.com') 
ch.setopt(pycurl.ENCODING, '') 
ch.perform() 

Définition de l'option ENCODING à une chaîne vide définit les en-têtes « Accept-Encoding » à tous les encodages supportés par libcurl et dit libcurl pour décoder les données de réponse. OP définissait probablement les en-têtes manuellement et libcurl n'attendait pas de données codées.

+0

Pycurl est-il capable de savoir quand les données sont codées ou non? Que faire si nous définissons le codage, mais il n'est pas gzippé, peut-il détecter automatiquement s'il doit décompresser ou non. Parfois, les données peuvent être dégonflées aussi! – CMCDragonkai

Questions connexes