Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/09/2010, 21:58
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Hola mundo y primera consulta con lxml

Bienvenido a Foros Del Web mebordone

En esta parte del codigo

Código Python:
Ver original
  1. Titulo.text = Titulostring

Titulostring ya no es mas un string es una cadena, tienes que convertirla a string.

Código Python:
Ver original
  1. Titulo.text = ''.join(Titulostring)

Version completa:
Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. # Mision, ver por que carajo lxml me rompe la codificacion de caracteres.
  3. # Se supone que la voz tiene en el encabezado utf8 como codificacion
  4. from lxml import html, etree
  5. import nltk
  6.  
  7. Notaxml = html.parse("http://www.lavoz.com.ar/noticias/politica/%E2%80%9Cen-el-pais-de-moyanolandia-suceden-estas-cosas%E2%80%9D")
  8.  
  9. #opcion 1
  10. Tituloxml = Notaxml.xpath("/html/body/div[@class='layout']/div[@class='Contenido']/div[@class='Columnasclearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2")
  11. Titulostring = etree.tostring(Tituloxml[0], encoding='UTF-8' )
  12. Titulostring = nltk.clean_html(Titulostring)
  13. print Titulostring #Hasta aqui vas bien
  14.  
  15. #ocion 2
  16. Titulostring = Notaxml.xpath("/html/body/div[@class='layout']/div[@class='Contenido']/div[@class='Columnasclearfix']/*/div[@class='CD clearfix']/*/div[@class='Art']/h2/text()")
  17. print Titulostring #Wow aqui Titulostring es ahora una lista
  18.  
  19. #en las dos me reta cuando quiero hacer esto.
  20. Articulo = etree.Element('Articulo')
  21. Diario = etree.SubElement(Articulo, 'Diario')
  22. Diario.text = 'La Voz del Interior'
  23. Titulo = etree.SubElement(Articulo, 'Titulo')
  24. Titulo.text = Titulostring #Titulo.text tiene que ser un string no una lista
  25. #Fix: Titulo.text = ''.join(Titulostring) #Funciona en caso que solo tenga un string
  26. print(etree.tostring(Articulo, pretty_print=True))
  27. Articuloxml = etree.ElementTree(Articulo)
  28. Articuloxml.write('pru.xml', pretty_print=True)

Última edición por razpeitia; 08/09/2010 a las 22:19