Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Taller de Scrapy - Barcelona Activa

5,454 views

Published on

Published in: Technology

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)

×