Código:
hola = 'h' + 'o' + 'l' + 'a' + ' ' hola = hola + 'm' + 'u' + 'n' + 'd' + 'o' print '%s' % (hola)
Estoy empezando a jugar / aprender python y estoy empezando un
pryectito. Asi que como buen
newbie acepto todas las criticas que me hagan para ir mejorando.
Necesito sacar información de una página de internet y lo primero que
se me ocurrio fue tratarlo como xml y usar xpath.
Para eso encontre la librería lxml y decidí usarla.
La idea es sacar información de un articulo de un diario (en este caso
de La Voz el interior por ejemplo) y guardar la informacion relevante
en un xml.
El problema que estoy teniendo ahora es que me da la sensación que
lxml me esta rompiendo de alguna forma la codificación de caracteres.
Aclaro que a lo mejor estoy haciendo cualquiera y no tengo idea.
Código de prueba (aclaro que la elección del articulo fue totalmete
aleatoria, jaja)
Código:
Salida del código# -*- coding: utf-8 -*- # Mision, ver por que carajo lxml me rompe la codificacion de caracteres. # Se supone que la voz tiene en el encabezado utf8 como codificacion from lxml import html, etree import nltk Notaxml = html.parse("http://www.lavoz.com.ar/noticias/politica/%E2%80%9Cen-el-pais-de-moyanolandia-suceden-estas-cosas%E2%80%9D") #opcion 1 Tituloxml = Notaxml.xpath("/html/body/div[@class='layout']/div[@class='Contenido']/div[@class='Columnas clearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2") Titulostring = etree.tostring(Tituloxml[0], encoding='UTF-8' ) Titulostring = nltk.clean_html(Titulostring) print Titulostring #ocion 2 Titulostring = Notaxml.xpath("/html/body/div[@class='layout']/div[@class='Contenido']/div[@class='Columnas clearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2/text()") print Titulostring #en las dos me reta cuando quiero hacer esto. Articulo = etree.Element('Articulo') Diario = etree.SubElement(Articulo, 'Diario') Diario.text = 'La Voz del Interior' Titulo = etree.SubElement(Articulo, 'Titulo') Titulo.text = Titulostring print(etree.tostring(Articulo, pretty_print=True)) Articuloxml = etree.ElementTree(Articulo) Articuloxml.write('pru.xml', pretty_print=True)
Código:
Me podrían tirar una mano (lo ideal para mi seria, flaco aca estas<h2>Tras el pedido de conciliación, se normalizó la situación en las plantas</h2> [u'Tras el pedido de conciliaci\xc3\xb3n, se normaliz\xc3\xb3 la situaci\xc3\xb3n en las plantas'] Traceback (most recent call last): File "experimento.py", line 22, in <module> Titulo.text = Titulostring File "lxml.etree.pyx", line 821, in lxml.etree._Element.text.__set__ (src/lxml/lxml.etree.c:32944) File "apihelpers.pxi", line 653, in lxml.etree._setNodeText (src/lxml/lxml.etree.c:15311) File "apihelpers.pxi", line 1240, in lxml.etree._utf8 (src/lxml/lxml.etree.c:19826) TypeError: Argument must be string or unicode.
metiendo fruta, mete esta opcion, o lo que sea) o diganme en que me
estoy equivocando y donde puedo leer para entender que esta pasando.
Muchas gracias.