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

De WikiEducator
Saltar a: navegación, buscar
Línea 33: Línea 33:
 
<div class="slide">
 
<div class="slide">
 
=== ¿Por qué Python? ===
 
=== ¿Por qué Python? ===
* Crecimiento de los lenguajes dinámicos en la web.
+
* Muy fácil para "no programadores"
 
* Muchos módulos, herramientas, ejemplos y documentación.
 
* Muchos módulos, herramientas, ejemplos y documentación.
 
* Desarrollo muy rápido y eficiente
 
* Desarrollo muy rápido y eficiente
Línea 45: Línea 45:
  
 
<div class="slide">
 
<div class="slide">
=== Búsqueda "bruta"  ===
+
=== ¿Búsqueda "bruta"? ===
 
<source lang="python">
 
<source lang="python">
 
import urllib2
 
import urllib2
Línea 58: Línea 58:
  
 
<div class="slide">
 
<div class="slide">
=== Librerías en Python ===
+
=== No. Librerías en Python ===
 
* Beautiful Soup
 
* Beautiful Soup
* mechanize
 
 
* lxml
 
* lxml
 
* html5lib
 
* html5lib
 +
* mechanize
 
* scrapemark
 
* scrapemark
 
* pyquery
 
* pyquery
Línea 71: Línea 71:
 
<div class="slide">
 
<div class="slide">
 
=== amara ===
 
=== amara ===
* Proyecto en torno a
+
* 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>
  
 
<div class="slide">
 
<div class="slide">
=== ===
+
=== 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
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">

Revisión de 21:46 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

2. Práctica