Usuario:Lmorillas/modulo lenguajes de marcas/xml/xpath/scraping con xpath

Web scraping: la web como fuente de información
{{Conocimiento previo| La web se está transformando en una web de datos, pero muy poca información se sirve de forma estructurada y abierta:
 * http://www.zaragoza.es/ciudad/risp/
 * http://www.data.gov/
 * http://data.gov.uk/

Dificultades

 * Información poco o mal estructurada
 * Etiquetado no válido

Alternativas
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems. – Jamie Zawinski }}
 * Leer la información de la web y parsearla con herramientas de análisis textual (expresiones regulares, etc.)
 * Usar parsers de html/xml. Estos parsers tiene que poder leer tagsoup porque se encontrarán con código no válido:
 * BeautifulSoup, lxml, amara.

{{Actividad| Title=Nuestra herramienta: Amara|

Dónde

 * http://wiki.xml3k.org/Amara (Tutorial)

¿Cómo se usa?
 Una muy rápida y con una sintaxis más cercana al xml  Otra más amigable y fácil de utilizar, que convierte el xml en objetos python. 
 * Tiene dos interfaces:

Instalar
Para instalar la última versión: $ sudo pip install http://files.akara.info/00-amara-latest.tar.bz2 Es necesario tener instalado un compilador de C y la cabeceras de python (en debian/ubuntu hay que instalar python-dev }}

Búsqueda de las entradas de una revista
Barrapunto publica sus entradas como Para extraer los nombres de los artículos de la primera página:

Más ejemplos en http://wiki.xml3k.org/Amara/Recipes

Inyección de marcado
Se puede transformar un documento para añadirle o quitarle información. https://github.com/zepheira/amara/blob/master/demo/inject_markup.py
 * En este ejemplo añadimos unos links a los nombre de los autores, detectados por expresiones regulares:
 * En este proyecto hacemos un uso intensivo de inyección de marcado en páginas web: https://bitbucket.org/lmorillas/iaaa/