|
|
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 00:10 7 nov 2011
Screen Scraping :: Aumentando el poder de la web
Luis Miguel Morillas <lmorillas at xml3k.org>
identi.ca: lmorillas
1. Intro
¿Por qué hacer scraping?
- En la web hay mucha información
- No siempre estructurada (opendata)
- Web de datos
- Divertido
Condiciones Legales
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
...
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
- 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
Scraping the web with amara