LSWC scraping the web/presentacion lwsc 2011
De WikiEducator
Saltar a: navegación, buscar
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
- 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.
¿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
- http://akara.info
- http://www.xml3k.org
- Proyecto liderado por Uche Ogbuji / Zepheira
- Combina el poder de Python y de las tecnologías XML
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