Bienvenido a Foros Del Web mebordone
En esta parte del codigo
Titulostring ya no es mas un string es una cadena, tienes que convertirla a string.
Código Python:
Ver originalTitulo.text = ''.join(Titulostring)
Version completa:
Código Python:
Ver original# -*- 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='Columnasclearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2")
Titulostring = etree.tostring(Tituloxml[0], encoding='UTF-8' )
Titulostring = nltk.clean_html(Titulostring)
print Titulostring #Hasta aqui vas bien
#ocion 2
Titulostring = Notaxml.xpath("/html/body/div[@class='layout']/div[@class='Contenido']/div[@class='Columnasclearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2/text()")
print Titulostring #Wow aqui Titulostring es ahora una lista
#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 #Titulo.text tiene que ser un string no una lista
#Fix: Titulo.text = ''.join(Titulostring) #Funciona en caso que solo tenga un string
print(etree.tostring(Articulo, pretty_print=True))
Articuloxml = etree.ElementTree(Articulo)
Articuloxml.write('pru.xml', pretty_print=True)