El día 15 de enero de 2011 01:22, Raúl Alexis Betancor Santana <rbetan...@gmail.com> escribió: > Buenas a todos. > Gracias a los links que me posteraron como respuesta a mi consulta sobre > documentación de pycurl ... he podido hacer lo que quería, conectarme al > web-chat ajax del site y poder descargar los mensajes. > Ahora se plantea un problema que me tiene hablando solo toda la tarde y al > que no le encuentro solución. > Cuando hago la llamada a curl para que descarge los mensajes, el site me > devuelve un xml con los mensajes he información extra. > import os.path > import time > import pycurl > import urllib > import StringIO > import codecs > [...] > output = StringIO.StringIO() > header = StringIO.StringIO() > [...] > c.setopt(pycurl.WRITEFUNCTION, output.write) > c.setopt(pycurl.HEADERFUNCTION, header.write) > [...] > # llamas a la url > c.perform() > [...] > xml = output.getvalue() > Bien .. a partir de aquí empiezan los problemas ... si intento grabar el > contenido a un fichero .xml para luego procesarlo con otra script python, lo > hago así: > f = open('salida.xml','wb') > value = output.getvalue().decode('utf-8') > if value.strip(): > f.write(value.encode('utf-8')) > f.close() > ... > El problema es que el fichero salida.xml, cuando lo voy a procesar con el > otro script python, que usa lxml ... se queja de los caracteres > "especiales", que está codificados en UTF-8 (o deberían) ... no son válidos. > He probado de esta otra manera: > f = codecs.open('salida','wb','utf-8') > #Y por ultimo la respuesta guardada en la variable output > value = output.getvalue() > if value.strip(): > f.write(value) > f.close() > c.close() > Y no hay forma ... luego al intentar procesarlo con lxml se queja de errores > relacionados con la codificación.
¿Qué error da? ¿Dónde? ¿Qué hace el script? Los objetos xml por defecto están codificados siempre en utf-8. -- lm > La pregunta es como lidiar con esta situación ¿? ... como respuesta a la > petición de pycurl, objeto un XML que está codificado en UTF-8 ..., necesito > grabarlo correctamente para poder procesarlo luego, ¿que estoy haciendo mal? > Saludos > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/