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

De WikiEducator
Saltar a: navegación, buscar
Línea 10: Línea 10:
 
<div class="slide">
 
<div class="slide">
 
==1. Intro  ==
 
==1. Intro  ==
 
 
</div>
 
</div>
  
 
<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
Línea 31: Línea 31:
 
http://www.imdb.es/help/show_article?conditions
 
http://www.imdb.es/help/show_article?conditions
 
</div>
 
</div>
 +
 
<div class="slide">
 
<div class="slide">
 
=== ¿Por qué Python? ===
 
=== ¿Por qué Python? ===
Línea 41: Línea 42:
 
<div class="slide">
 
<div class="slide">
 
==2. ¿Cómo?  ==
 
==2. ¿Cómo?  ==
 
 
</div>
 
</div>
  
Línea 90: Línea 90:
 
* Licencia tipo Apache
 
* Licencia tipo Apache
 
</div>
 
</div>
 +
 +
<div class="slide">
 +
=== Devolviendo datos a 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'''
 +
</div>
 +
 +
<div class="slide">
 +
=== Casos de éxito  ===
 +
* http://viewshare.org/about/help/
 +
<flash>file=http://outreach.zepheira.com/public/loc/recollection/video/recollection-intro.swf|width=800|height=600|quality=best</flash>
 +
</div>
 +
 
<div class="slide">
 
<div class="slide">
 
==2. Práctica  ==
 
==2. Práctica  ==

Revisión de 23:10 6 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 "bruta"?

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

No. Librerías en Python

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

...

amara

Para los que quieran 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

Devolviendo datos a 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

2. Práctica