Diferencia entre revisiones de «LSWC scraping the web/presentacion lwsc 2011»
De WikiEducator
(21 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 4: | Línea 4: | ||
= Screen Scraping :: Aumentando el poder de la web= | = Screen Scraping :: Aumentando el poder de la web= | ||
− | Luis Miguel Morillas <lmorillas at xml3k.org> | + | Luis Miguel Morillas <lmorillas at xml3k.org> |
+ | |||
+ | Zaragoza, 10 de noviembre de 2011 | ||
identi.ca: lmorillas | identi.ca: lmorillas | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | == | + | ==1. Intro == |
+ | </div> | ||
+ | <div class="slide"> | ||
+ | |||
+ | ===¿POR QUÉ HACER SCRAPING?=== | ||
+ | * Web de datos | ||
+ | |||
+ | * En la web hay mucha información | ||
+ | * No siempre estructurada (opendata) | ||
+ | * '''Divertido''' | ||
</div> | </div> | ||
+ | |||
+ | <div class="slide nobackground"> | ||
+ | ===¿DÓNDE/CÓMO ESTÁN LOS DATOS?=== | ||
+ | ''¿A qué hora es la charla de Jython?'' | ||
+ | [[Archivo:Lswc horario codigo.png]] | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === 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 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === ¿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 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ==2. ¿Cómo? == | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === PROCESO GENERAL === | ||
+ | * Analizar | ||
+ | * Buscar patrones | ||
+ | * Extracción de datos | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === ¿BÚSQUEDA EN EL TEXTO BRUTO? === | ||
+ | <source lang="python"> | ||
+ | import urllib2 | ||
+ | |||
+ | URL = 'http://www.libresoftwareworldconference.com/' | ||
+ | source = urllib2.urlopen(URL).read() | ||
+ | </source> | ||
+ | |||
+ | * Proceso del texto (Búsqueda subcadenas ...) | ||
+ | * Expresiones regulares | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === NO. MEJOR USAMOS LIBRERÍAS ... === | ||
+ | * Beautiful Soup | ||
+ | * lxml | ||
+ | * html5lib | ||
+ | * mechanize | ||
+ | * scrapemark | ||
+ | * pyquery | ||
+ | * scrapy | ||
+ | ... | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === AMARA === | ||
+ | * http://akara.info | ||
+ | * http://www.xml3k.org | ||
+ | * Proyecto liderado por Uche Ogbuji / [http://zepheira.com/ Zepheira] | ||
+ | * Combina el poder de Python y de las tecnologías XML | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === MÁS DETALLES === | ||
+ | * Implementada en C y Pyhton | ||
+ | * Parser basado en Expat | ||
+ | * API para recorrido de nodos muy eficiente y sencilla<br/> | ||
+ | : 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 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === 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''' | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | === CASOS DE ÉXITO === | ||
+ | * http://viewshare.org/about/help/ | ||
+ | |||
+ | [http://outreach.zepheira.com/public/loc/recollection/video/recollection-intro.swf http://viewshare.org/static/images/recollection-video-thumbnail.png] | ||
+ | |||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | |||
+ | ==3. Práctica == | ||
+ | |||
+ | </div> | ||
+ | |||
</div> | </div> |