Diferencia entre revisiones de «LSWC scraping the web/taller scraping lwsc 2011»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{MiTitulo| Taller de Web Scraping LWSC 2011}}
 
{{MiTitulo| Taller de Web Scraping LWSC 2011}}
 +
 +
== Planteamiento del taller de scraping ==
 +
En el taller vamos a usar [http://www.python.org Python] y [http://www.xml3k.org/Amara Amara] para hacer una práctica de web scraping. El nivel del taller es de iniciación.
  
 
{{Objetivo|
 
{{Objetivo|
TOCdepth=2|
 
 
* Introducción a las técnicas básicas de scraping usando [http://www.python.org Python] y [http://www.xml3k.org/Amara Amara]
 
* Introducción a las técnicas básicas de scraping usando [http://www.python.org Python] y [http://www.xml3k.org/Amara Amara]
 
* Herramientas de ayuda (firebug, curl, ...)
 
* Herramientas de ayuda (firebug, curl, ...)
 
}}
 
}}
  
 +
== Configuración ==
 +
Python y Amara son multiplataforma. En el taller vamos a indicar cómo instalar el entorno en linux.
 
{{Actividad|
 
{{Actividad|
TOCdepth=2|
+
TOCdepth=3|
 
Title=Configuración del entorno|
 
Title=Configuración del entorno|
 +
* Instalación de python.
 +
$ sudo apt-get install python2.7 python2.7-dev python-pip  idle-python2.7
 
* Instalación de amara
 
* Instalación de amara
 
  $ sudo pip install http://files.akara.info/00-amara-latest.tar.bz2
 
  $ sudo pip install http://files.akara.info/00-amara-latest.tar.bz2
Línea 17: Línea 23:
 
}}
 
}}
  
 +
== 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 modifcar un documento web.
  
 
{{Actividad|
 
{{Actividad|
Línea 23: Línea 37:
 
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS" >
 
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS" >
 
from amara.bindery import html
 
from amara.bindery import html
URL = 'http://mypage.com'
+
URL = 'http://pagina.destino.com'
  
 
doc = html.parse(URL)
 
doc = html.parse(URL)

Revisión de 05:23 7 nov 2011


Planteamiento del taller de scraping

En el taller vamos a usar Python y Amara para hacer una práctica de web scraping. El nivel del taller es de iniciación.


Icon objectives.jpg

Objetivo

  • Introducción a las técnicas básicas de scraping usando Python y Amara
  • Herramientas de ayuda (firebug, curl, ...)


Configuración

Python y Amara son multiplataforma. En el taller vamos a indicar cómo instalar el entorno en linux.

Configuración del entorno

Icon activity.jpg

Configuración del entorno

  • Instalación de python.
$ sudo apt-get install python2.7 python2.7-dev python-pip  idle-python2.7 
  • Instalación de amara
$ sudo pip install http://files.akara.info/00-amara-latest.tar.bz2
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)


  • Instalar firebug
https://addons.mozilla.org/es-es/firefox/addon/firebug/





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 modifcar un documento web.


Lectura básica de un documento

Icon activity.jpg

Lectura básica de un documento

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







Icon casestudy.gif

Ejemplo

Listado de cursos del INAEM: http://plan.aragon.es/MapaRec.nsf/fmrListado?OpenForm

Icon present.gif
Tip: Para el taller usaremos una copia local, para no saturar el servidor






Acceso al contenido de la página

Icon activity.jpg

Acceso al contenido de la página

  1. from amara.bindery import html
  2. from amara.lib import U
  3.  
  4. URL = '<introduce la dirección de la copia local>'
  5.  
  6. doc = html.parse(URL)
  7. print U(doc.html.body) # doc permite recorrer el documento con sintaxis python
Icon present.gif
Tip: doc tiene toda la información del documento