El día 4 de marzo de 2011 15:16, (P@vel) <pdlo...@uci.cu> escribió: > A ver yo lo que estoy haciendo es cojer el html de una pagina de internet > con : > f = urllib2.urlopen(url_page) > data = f.read() > mi problema es que cuando parseo esto con BeautifulSoup puedo obtener cosas > como esto [u'ESPAÑA'] y necesito convertir eso que esta en la lista a un > str, para poder meterlo en un campo de una tabla en mi base de datos
Bueno, al menos vemos que hay una parte que funciona. No entiendo el resto del código que pones pues 'codecs.open' es para manejar ficheros de texto y no tiene sentido el modo como lo usas. Pero de lo que comentas, parece que ya tienes la cadena unicode y donde te surgen los problemas es en la introducción de la cadena en la base de datos (que no sabemos cuál es). De lo que dije sobre unicode y python habría que añadir un corolario sobre lo que pasa con las bases de datos (me centraré más en oracle ya que, haciendo honor a su nombre, es la más esotérica de todas): - Tablas: del mismo modo que los ficheros de texto, las tablas utilizan una codificación de caracteres que es fijada en el momento de su creación. Un problema frecuente proviene de considerar como tamaño de campo el número de bytes y no el número de caracteres. El tamaño de una cadena codificada en utf8 es posible que no quepa en un tamaño de campo pensando para una cadena ascii. En oracle se puede dar tamaños de campos en bytes o en chars, recomendando usar chars como medida de tamaño. - Cliente-Servidor: cuando se estable una conexión con la base de datos, el canal también usa una codificación de caracteres. Esta codificación se puede fijar como un parámetro de la conexión, con excepción en oracle que lo toma desde una variable de entorno. Para utf8 y español sería definir la siguiente variable: NLS_LANG=SPANISH_SPAIN.AL32UTF8 Espero que ésto te sea de alguna ayuda. Deberías precisar mejor el problema, con parte de código "concreto" que usas y el texto del "error" que te da. > > ya probe con hacer esto dentro de mi funcion > def > get_html(url_page="http://www.bolsamadrid.es/esp/mercados/fondos/htm/trenta100.htm"): > proxy_h = urllib2.ProxyHandler({"http" : > "http://pdlo...@hlg.uci.cu:paveling84074@100.0.0.1:3128"}) > opener = urllib2.build_opener(proxy_h) > urllib2.install_opener(opener) > f = urllib2.urlopen(url_page) > > data = f.read() > data = codecs.open(data) #Esto > return data > y me saca todo el codigo de la pagina y la otra funcion a la cual le paso lo > que tengo en data, ahora no hace nada _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/