Trabajo con ficheros xml / html

De WikiEducator
Saltar a: navegación, buscar


Amara

  • Una muy rápida y con una sintaxis más cercana al xml
    import amara
    URL = '....'  # URL puede ser una url, una ruta de un fichero o una cadena de texto
    doc = amara.parse(URL)
  • Otra más amigable y fácil de utilizar, que convierte el xml en objetos python.

    from amara import bindery
    URL = '....'  
    doc = bindery.parse(URL)
    # si el html o xml puede no ser válido:
    from amara.bindery import html
    URL = '....'  
    doc = html.parse(URL)

Instalar

Para instalar la última versión:

$ sudo pip install http://files.akara.info/00-amara-latest.tar.bz2

O descargar, descomprimir y ejecutar dentro del directorio de amara:

$ sudo python setup.py install
Icon present.gif
Tip: Es necesario tener instalado un compilador de C y la cabeceras de python (en debian/ubuntu hay que instalar python-dev


Scraping con Amara

Lectura de una página html

El proceso básico consiste en utilizar un parser para analizar el documento. Amara tiene 3 parsers:

amara.parse
amara.bindery.parse
amara.bindery.html.parse

Para usar documentos html usaremos el tercero, que además soporta documentos no válidos (tagsoup). El objeto que devuelve el parser es el que usamos para leer y modificar un documento web.



Icon activity.jpg

Actividad

Escribe este ejemplo para leer un documento. Modifica URL para que tenga una dirección real. ¿Qué vemos en la pantalla?

  1. from amara.bindery import html
  2. URL = 'http://pagina.destino.com'
  3.  
  4. doc = html.parse(URL)
  5. print doc
Icon present.gif
Tip: doc tiene toda la información del documento






Búsqueda con xpath

  1. doc = html.parse(URL)
  2. encontrados = doc.xml_select(<expresión xpath>)
  3. for elemento in encontrados:
  4.     <tratar_elemento>

Más

Icon present.gif
Tip: Más info: http://es.wikieducator.org/LSWC_scraping_the_web/taller_scraping_lwsc_2011