Foros del Web » Programando para Internet » Python »

Problema con for y Xpath

Estas en el tema de Problema con for y Xpath en el foro de Python en Foros del Web. Buenas buenas! Estoy realizando un pequeño scraper de datos & me quede parado en una parte, he buscado información pero no logro resolverlo. Les dejo ...
  #1 (permalink)  
Antiguo 10/02/2014, 12:25
 
Fecha de Ingreso: junio-2009
Mensajes: 138
Antigüedad: 10 años, 5 meses
Puntos: 4
Problema con for y Xpath

Buenas buenas!

Estoy realizando un pequeño scraper de datos & me quede parado en una parte, he buscado información pero no logro resolverlo.

Les dejo el código y luego les explico.

Código Python:
Ver original
  1. #!/usr/bin/python
  2.  
  3. import re
  4.  
  5. from lxml import html
  6. from mechanize import Browser
  7. br = Browser()
  8.  
  9.  
  10. br.set_handle_robots(False)
  11. br.addheaders = [('User-agent', 'Firefox')]
  12.  
  13. site = br.open('http://www.nic.cl/registry/Ultimos.do?t=1d')
  14.  
  15. if site.code == 200:
  16.   code = html.fromstring(site.read())
  17.   doms = code.xpath('//*[@id="box-tablaresultados"]/table/tbody')

Pues bien, hasta hay todo bien.

Pero luego de eso me gustaría obtener el valor de todos los <tr> que van dentro del <tbody>.

¿Tienen alguna idea de como hacer esto?

Muchas gracias & saludos.
  #2 (permalink)  
Antiguo 10/02/2014, 13:30
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 7 años, 10 meses
Puntos: 35
Respuesta: Problema con for y Xpath

Para parsear HTML por qué no probas con BeautifulSoup o HTMLParser (que viene con python)?
  #3 (permalink)  
Antiguo 10/02/2014, 13:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 14 años, 8 meses
Puntos: 1360
Respuesta: Problema con for y Xpath

Código Python:
Ver original
  1. #!/usr/bin/python
  2.  
  3. import re
  4.  
  5. from lxml import html
  6. from mechanize import Browser
  7. br = Browser()
  8.  
  9.  
  10. br.set_handle_robots(False)
  11. br.addheaders = [('User-agent', 'Firefox')]
  12.  
  13. site = br.open('http://www.nic.cl/registry/Ultimos.do?t=1d')
  14.  
  15. if site.code == 200:
  16.   code = html.fromstring(site.read())
  17.   doms = code.xpath('//*[@id="box-tablaresultados"]/table/tr')
  18.   for dom in doms:
  19.     dom = ''.join(dom.xpath('./td/div[1]/a/text()'))
  20.     print dom

Solo es cuestión de conocer xpath, no realmente de python.
  #4 (permalink)  
Antiguo 10/02/2014, 14:14
 
Fecha de Ingreso: junio-2009
Mensajes: 138
Antigüedad: 10 años, 5 meses
Puntos: 4
Respuesta: Problema con for y Xpath

Probé pero sin éxito. Por eso decidí hacerlo así.

Cita:
Iniciado por carbon Ver Mensaje
Para parsear HTML por qué no probas con BeautifulSoup o HTMLParser (que viene con python)?

Perfecto aunque tengo otro problema.
Uso SublimeText y me arroja un error de codificación, mas bien el siguiente:

Código:
racktime.cl
angoleduca.cl
Traceback (most recent call last):
  File "C:\Users\Wolf\Documents\Python\index.py", line 20, in <module>
    print dom
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 1: ordinal not in range(128)
[Finished in 0.8s with exit code 1]
Como puedo solucionar eso? Gracias nuevamente.

Cita:
Iniciado por razpeitia Ver Mensaje
Código Python:
Ver original
  1. #!/usr/bin/python
  2.  
  3. import re
  4.  
  5. from lxml import html
  6. from mechanize import Browser
  7. br = Browser()
  8.  
  9.  
  10. br.set_handle_robots(False)
  11. br.addheaders = [('User-agent', 'Firefox')]
  12.  
  13. site = br.open('http://www.nic.cl/registry/Ultimos.do?t=1d')
  14.  
  15. if site.code == 200:
  16.   code = html.fromstring(site.read())
  17.   doms = code.xpath('//*[@id="box-tablaresultados"]/table/tr')
  18.   for dom in doms:
  19.     dom = ''.join(dom.xpath('./td/div[1]/a/text()'))
  20.     print dom

Solo es cuestión de conocer xpath, no realmente de python.
  #5 (permalink)  
Antiguo 10/02/2014, 15:00
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 14 años, 8 meses
Puntos: 1360
Respuesta: Problema con for y Xpath

Añade el encoding a tu archivo.

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-

Tal como indica el PEP 0263.
http://www.python.org/dev/peps/pep-0263/

Etiquetas: xpath
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.