ScrapyCapturando datos de la web
¿Quién soy? Daniel Bertinat
¿Que es Scrapy? Scrapy es un framework para el rastreo de  sitios web y extracción de datos  estructurados que pueden ser...
Como nace Aunque Scrapy fue diseñado originalmente  para captura de imágenes (más  precisamente, web scraping), también s...
Por ejemplo: elige un sitio web Queremos extraer alguna información de un sitio   web, pero el sitio web no proporciona n...
Por ejemplo: elige un sitio web Definir los datos que deseas scrapear Escribir una araña para extraer los datos Ejecuta...
Características Simple - diseñado con la simplicidad en mente Productivo - sólo tiene que escribir las reglas para    ex...
Características Portátil, open source, 100% Python Muy completo - contiene extensiones para manejo   de cookies, HTTP co...
Primeros pasos Definir entorno:    Se puede ejecutar en Linux, Windows, Mac y BSD Requerimientos:    Python 2.6 or 2.7...
Conceptos básicos   Command line tool     Scrapy es controlado a traves de un conjunto de comandos y      sub-comandos  ...
Conceptos básicos Selectors   XPathSelector        HtmlXPathSelector        XmlXPathSelector Item Loaders   A pesar ...
Conceptos básicos   Item Pipeline     Una vez extraído un ítem, puede pasarse por un Pipeline para      aplicar varios p...
Algunos conceptos avanzados Usando Firefox para scraping (DOM, XPather, XPath   Checker, Tamper Data, Firecookie) Usando...
Ejemplo caso de uso con Scrapy Recolección de Oposiciones y Convocatorias de   Empleo Público (www.oposicionesaldia.com)...
ScrapingHub Scrapy Cloud es una plataforma para la   implementación, ejecución y seguimiento de las   arañas Scrapy y un ...
AutoScraping Autoscraping es una herramienta que le permite   scrapear sitios web sin necesidad de conocimientos   de pro...
ProxyHub ProxyHub proporciona un HTTP proxy, con un   conjunto de direcciones IP rotativas, diseñado   específicamente pa...
Ejemplo caso de uso con AutoScraping    Captura de Daily Deals y ofertas de sitios webs de      e-commerce para Offertazo...
Próxima SlideShare
Cargando en…5
×

Taller de Scrapy - Barcelona Activa

4.711 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
6 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
4.711
En SlideShare
0
De insertados
0
Número de insertados
6
Acciones
Compartido
0
Descargas
63
Comentarios
0
Recomendaciones
6
Insertados 0
No insertados

No hay notas en la diapositiva.

Taller de Scrapy - Barcelona Activa

  1. 1. ScrapyCapturando datos de la web
  2. 2. ¿Quién soy? Daniel Bertinat
  3. 3. ¿Que es Scrapy? Scrapy es un framework para el rastreo de sitios web y extracción de datos estructurados que pueden ser utilizados para una amplia gama de aplicaciones, como ser data mining, procesamiento de datos o archivo histórico de información.
  4. 4. Como nace Aunque Scrapy fue diseñado originalmente para captura de imágenes (más precisamente, web scraping), también se puede utilizar para extraer los datos mediante APIs (como Amazon Associates Web Services) o como un web crawler de propósito general.
  5. 5. Por ejemplo: elige un sitio web Queremos extraer alguna información de un sitio web, pero el sitio web no proporciona ninguna API o mecanismo para acceder a esa información mediante un programa. Con Scrapy podemos extraer esa información. Digamos que queremos extraer la URL, nombre, descripción de nuevas Oposiciones y Convocatorias de Empleo Público.
  6. 6. Por ejemplo: elige un sitio web Definir los datos que deseas scrapear Escribir una araña para extraer los datos Ejecutar la araña para extraer los datos Revisar los datos scrapeados Guardar la información y emplearla donde quieras
  7. 7. Características Simple - diseñado con la simplicidad en mente Productivo - sólo tiene que escribir las reglas para extraer los datos de las páginas web y dejar que Scrapy rastree el sitio web Rápido y potente - scrapy se utiliza en producción para scrapear más de 500 sitios completos de ventas a diario y todo en un mismo servidor Extensible - proporciona varios mecanismos para conectar nuevas extensiones sin tener que alterar el framework
  8. 8. Características Portátil, open source, 100% Python Muy completo - contiene extensiones para manejo de cookies, HTTP compression, HTTP authentication, HTTP cache, restricción de profundidad, descarga de documentos, etc Bien documentado y testeado Cuenta con una comunidad amplia y apoyo comercial
  9. 9. Primeros pasos Definir entorno:  Se puede ejecutar en Linux, Windows, Mac y BSD Requerimientos:  Python 2.6 or 2.7  OpenSSL  No usar python-scrapy package para Ubuntu Para obtener más reciente  Git Repo
  10. 10. Conceptos básicos Command line tool  Scrapy es controlado a traves de un conjunto de comandos y sub-comandos  Ej generador de proyecto, generador de spiders, crawl, fetch, check, etc Items  El objetivo principal de scrapeado es extraer datos estructurados procedentes de fuentes no estructuradas, por lo general, las páginas web.  Scrapy proporciona la clase ítem para este propósito. Los ítems son simples objetos contenedores utilizados para recoger estos datos. Spiders  Define como un sitio o un conjunto de sitios va a ser navegado y scrapeado
  11. 11. Conceptos básicos Selectors  XPathSelector  HtmlXPathSelector  XmlXPathSelector Item Loaders  A pesar de que los ítems se pueden completar utilizando su propio diccionario, los cargadores del ítems proporcionan métodos mas complejos y convenientes para rellenarlos.  Automatizan algunas tareas comunes como el análisis de los datos extraídos antes de asignarlos.
  12. 12. Conceptos básicos Item Pipeline  Una vez extraído un ítem, puede pasarse por un Pipeline para aplicar varios procesos adicionales.  Ej: limpieza de datos HTML, validación de datos (comprobando que los artículos contienen ciertos campos), comprobación de duplicados, descarte, almacenamiento, etc Feed exports  Formatos: JSON, JSON lines, CSV, XML  Storages: Local filesystem, FTP, S3, Standard output Link Extractors  LinkExtractors son objetos cuyo único propósito es extraer los enlaces de páginas web (objetos scrapy.http.Response), que serán seguidos por el crawler.
  13. 13. Algunos conceptos avanzados Usando Firefox para scraping (DOM, XPather, XPath Checker, Tamper Data, Firecookie) Usando Firebug para scraping (Xpath) Ubuntu packages Jobs: pausar y reanudar crawlers Descarga de imágenes de ítems (pipeline)
  14. 14. Ejemplo caso de uso con Scrapy Recolección de Oposiciones y Convocatorias de Empleo Público (www.oposicionesaldia.com) Recolección de Becas de Estudios Recolección de Tesis, Documentos, Publicaciones y Recursos Educativos
  15. 15. ScrapingHub Scrapy Cloud es una plataforma para la implementación, ejecución y seguimiento de las arañas Scrapy y un visualizador de los datos scrapeados Permite controlar las arañas mediante tareas programadas, revisar que procesos están corriendo y obtener los datos scrapeados. Los proyectos se pueden gestionan desde la API o a través de su Panel Web.
  16. 16. AutoScraping Autoscraping es una herramienta que le permite scrapear sitios web sin necesidad de conocimientos de programación. Sólo debe elegir las páginas web para scrapear, definir que campos queremos obtener (ej: nombre, descripción, título) y el sistema hace el resto. Está basado íntegramente en la web, por lo que solo requiere un navegador moderno, sin necesidad de descargar o instalar nada.
  17. 17. ProxyHub ProxyHub proporciona un HTTP proxy, con un conjunto de direcciones IP rotativas, diseñado específicamente para scraping. Con este servicio, los usuarios de Scrapy no deben preocuparse mas sobre:  Demoras de descagas  Request concurrentes  User agents  Cookies o referrers para evitar ser baneados
  18. 18. Ejemplo caso de uso con AutoScraping  Captura de Daily Deals y ofertas de sitios webs de e-commerce para Offertazo (www.offertazo.com)

×