Haciendo un planet en python

La práctica 5 de AAP consistía en crear un programa que recogiese las noticias de diferentes fuentes y las mostrase en un sólo documento HTML, lo que se viene a denominar un planet en la jerga bloguera.

En mi caso lo he programado en Python haciendo uso de la librería feedparser y genero una página HTML así como un feed usando la librería PyRSS2Gen.

He usado la codificación de caracteres utf-8 en todo momento, pero tengo un problema al generar el archivo html ya que no se guarda como utf-8 (si lo abrimos con un editor como geany podemos comprobar que está «sin codificación»), y luego al mostrarlo en el navegador no se ve bien. El caso es que en mi máquina sí se muestra correctamente, pero en el servidor donde lo he alojado no, como podéis ver en http://swecai.ugr.es/~planet_etsiit. Si en el navegador seleccionáis la codificación unicode, se ve bien, e incluso en el header está el meta indicando que es utf-8. ¿Alguna idea de cómo solucionar esto? Editado: blaxter ha dado con la tecla en este comentario. ¡Gracias!

Podéis descargar la aplicación libremente: planet.tgz. En el fichero index.html viene una descripción más detallada del trabajo realizado y en la carpeta scripts se encuentra el fichero actualizar.py que se encarga de generar los ficheros planet.html y feed.xml a partir de los feeds situados en sites.txt cada cierto tiempo, que podemos indicar usando una tarea cron.

4 comentarios en “Haciendo un planet en python

  1. blaxter

    La página es correcta, está en UTF8, pero el apache la está sirviendo como puñetero latin1 (fíjate en los headers de la respuesta del servidor, wget -S http://swecai.ugr.es/~planet_etsiit/planet.html).

    En estos casos el charset especificado en los headers de la respuesta tienen preferencia sobre el charset indicado en el documento, ergo se muestra como latin1.

    Este problema, probablemente se deba a un apache «viejo» y/o «mal configurado», porque desde el inicio de los tiempos, ha estado en apache, por lo normal, activada por defecto la opción AddDefaultCharset ISO-8859-1 (lo cual no tiene ni puta gracia).

    Como supongo que no podrás modificarlo, puedes create un .htaccess y añadir algo como

    AddCharset UTF-8 .html

Los comentarios están cerrados.