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

De WikiEducator
Saltar a: navegación, buscar
Línea 14: Línea 14:
 
<div class="slide">
 
<div class="slide">
  
==='''¿Por qué hacer scraping?'''===
+
===¿POR QUÉ HACER SCRAPING?===
 
* En la web hay mucha información
 
* En la web hay mucha información
 
* No siempre estructurada (opendata)
 
* No siempre estructurada (opendata)
Línea 22: Línea 22:
  
 
<div class="slide">
 
<div class="slide">
=== Condiciones Legales ===
+
=== CONDICIONES LEGALES ===
 
* Uso responsable
 
* Uso responsable
 
  Robots y Screen Scraping (raspado de pantalla): Usted no podrá usar  
 
  Robots y Screen Scraping (raspado de pantalla): Usted no podrá usar  
Línea 33: Línea 33:
  
 
<div class="slide">
 
<div class="slide">
=== ¿Por qué Python? ===
+
=== ¿POR QUÉ PYTHON? ===
 
* Muy fácil para "no programadores"
 
* Muy fácil para "no programadores"
 
* Muchos módulos, herramientas, ejemplos y documentación.
 
* Muchos módulos, herramientas, ejemplos y documentación.
Línea 45: Línea 45:
  
 
<div class="slide">
 
<div class="slide">
=== ¿Búsqueda "bruta"?  ===
+
=== ¿BÚSQUEDA EN EL TEXTO BRUTO?  ===
 
<source lang="python">
 
<source lang="python">
 
import urllib2
 
import urllib2
Línea 58: Línea 58:
  
 
<div class="slide">
 
<div class="slide">
=== No. Librerías en Python ===
+
=== NO. MEJOR USAMOS LIBRERÍAS ... ===
 
* Beautiful Soup
 
* Beautiful Soup
 
* lxml
 
* lxml
Línea 70: Línea 70:
  
 
<div class="slide">
 
<div class="slide">
=== amara ===
+
=== AMARA ===
 
* http://akara.info
 
* http://akara.info
 
* http://www.xml3k.org
 
* http://www.xml3k.org
Línea 78: Línea 78:
  
 
<div class="slide">
 
<div class="slide">
=== Para los que quieran más detalles ===
+
=== MÁS DETALLES ===
 
* Implementada en C y Pyhton
 
* Implementada en C y Pyhton
 
* Parser basado en Expat
 
* Parser basado en Expat
Línea 90: Línea 90:
  
 
<div class="slide">
 
<div class="slide">
=== Devolviendo datos a la web: akara ===
+
=== CREANDO DATOS PARA LA WEB: AKARA ===
 
* '''Akara''' es un framework para construir apps RESTful basadas en datos
 
* '''Akara''' es un framework para construir apps RESTful basadas en datos
 
* Aplicando sencillos wrappers (decoradores) transformamos funciones en serviciios REST
 
* Aplicando sencillos wrappers (decoradores) transformamos funciones en serviciios REST
Línea 97: Línea 97:
  
 
<div class="slide">
 
<div class="slide">
=== Casos de éxito ===
+
=== CASOS DE ÉXITO ===
 
* http://viewshare.org/about/help/
 
* http://viewshare.org/about/help/
  

Revisión de 09:42 9 nov 2011

1. Intro

¿POR QUÉ HACER SCRAPING?

  • En la web hay mucha información
  • No siempre estructurada (opendata)
  • Web de datos
  • Divertido

CONDICIONES LEGALES

  • Uso responsable
Robots y Screen Scraping (raspado de pantalla): Usted no podrá usar 
minería de datos ("data mining"), robots, screen scraping o herramientas 
similares de acumulación y extracción de datos en este sitio de red, 
salvo con nuestro consentimiento expreso y por escrito tal y 
como se indica a continuación.

http://www.imdb.es/help/show_article?conditions

¿POR QUÉ PYTHON?

  • Muy fácil para "no programadores"
  • Muchos módulos, herramientas, ejemplos y documentación.
  • Desarrollo muy rápido y eficiente
  • Open-source

2. ¿Cómo?

¿BÚSQUEDA EN EL TEXTO BRUTO?

import urllib2
 
URL = 'http://www.libresoftwareworldconference.com/'
source = urllib2.urlopen(URL).read()
  • Proceso del texto (Búsqueda subcadenas ...)
  • Expresiones regulares

NO. MEJOR USAMOS LIBRERÍAS ...

  • Beautiful Soup
  • lxml
  • html5lib
  • mechanize
  • scrapemark
  • pyquery
  • scrapy

...

AMARA

MÁS DETALLES

  • Implementada en C y Pyhton
  • Parser basado en Expat
  • API para recorrido de nodos muy eficiente y sencilla
Python, XPath, InfoSet
  • XPath (& binding dinámico de objetos)
  • XSLT (& enlazado con funciones en Python)
  • Aserciones basadas en Schematron (validación de modelos)
  • Licencia tipo Apache

CREANDO DATOS PARA LA WEB: AKARA

  • Akara es un framework para construir apps RESTful basadas en datos
  • Aplicando sencillos wrappers (decoradores) transformamos funciones en serviciios REST
  • Funciona como un repositorio de servicios con autodiscover

3. Práctica