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

De WikiEducator
Saltar a: navegación, buscar
 
(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">
===¿Por qué hacer scraping?===
+
==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>

Última revisión de 20:31 10 nov 2011

1. Intro

¿POR QUÉ HACER SCRAPING?

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

¿DÓNDE/CÓMO ESTÁN LOS DATOS?

¿A qué hora es la charla de Jython? Lswc horario codigo.png

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?

PROCESO GENERAL

  • Analizar
  • Buscar patrones
  • Extracción de datos

¿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