SlideShare ist ein Scribd-Unternehmen logo
1 von 18

Scrapy
Capturando 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 utilizados
  para una amplia gama de aplicaciones,
  como ser data mining, procesamiento de
  datos o archivo histórico de información.
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.
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.
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
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
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
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
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
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.
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.
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)
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
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.
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.
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
Ejemplo caso de uso con AutoScraping


    Captura de Daily Deals y ofertas de sitios webs de
      e-commerce para Offertazo (www.offertazo.com)

Weitere ähnliche Inhalte

Was ist angesagt?

MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010Rafael Hernamperez
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4jUbaldo Taladriz
 
Open source analysis
Open source analysisOpen source analysis
Open source analysisTensor
 
OPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSISOPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSISTensor
 
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.Victor Cuervo
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Julián Castiblanco
 
Introducción a MongoDB
Introducción a MongoDBIntroducción a MongoDB
Introducción a MongoDBDiamond DevOps
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Fernando Rizzato
 
Taller consulta 2do corte i.a
Taller consulta 2do corte i.aTaller consulta 2do corte i.a
Taller consulta 2do corte i.acristian17112010
 
Navegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioNavegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioanesantivale
 
Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteAlejandro Ramos
 

Was ist angesagt? (20)

Mongo DB
Mongo DBMongo DB
Mongo DB
 
Nodos e taxonomia en Drupal
Nodos e taxonomia en DrupalNodos e taxonomia en Drupal
Nodos e taxonomia en Drupal
 
MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4j
 
Open source analysis
Open source analysisOpen source analysis
Open source analysis
 
OPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSISOPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSIS
 
motores de busqueda
motores de busquedamotores de busqueda
motores de busqueda
 
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.
Tarde Técnica Abirtone. MongoDB. Un pequeño sorbo.
 
MongoDB y bluemix
MongoDB y bluemixMongoDB y bluemix
MongoDB y bluemix
 
Diapositva
DiapositvaDiapositva
Diapositva
 
NoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google MapsNoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google Maps
 
Mongo Mapper
Mongo MapperMongo Mapper
Mongo Mapper
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3
 
¿que es mongodb?
¿que es mongodb?¿que es mongodb?
¿que es mongodb?
 
Introducción a MongoDB
Introducción a MongoDBIntroducción a MongoDB
Introducción a MongoDB
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC
 
MongoDB
MongoDBMongoDB
MongoDB
 
Taller consulta 2do corte i.a
Taller consulta 2do corte i.aTaller consulta 2do corte i.a
Taller consulta 2do corte i.a
 
Navegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioNavegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacio
 
Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLite
 

Ähnlich wie Taller de Scrapy - Barcelona Activa

Analisis seo.ppt2
Analisis seo.ppt2Analisis seo.ppt2
Analisis seo.ppt2Maribel_kar
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Presentación html5
Presentación html5Presentación html5
Presentación html5aydimdagam
 
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffffMotores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffffMiguelRomero01
 
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13peter69
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Analisis seo
Analisis seoAnalisis seo
Analisis seodaysi
 
Drupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalDrupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalRojomorgan
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield ProtectorChema Alonso
 
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Rojomorgan
 
Sistema modular de representación de información para la plataforma de web se...
Sistema modular de representación de información para la plataforma de web se...Sistema modular de representación de información para la plataforma de web se...
Sistema modular de representación de información para la plataforma de web se...Antonio Lopez
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018nacho mascort
 
Silverstripe equipo7-victoriano-bartolo-jesus-martinez
Silverstripe equipo7-victoriano-bartolo-jesus-martinezSilverstripe equipo7-victoriano-bartolo-jesus-martinez
Silverstripe equipo7-victoriano-bartolo-jesus-martinezjesus_mistico
 

Ähnlich wie Taller de Scrapy - Barcelona Activa (20)

Analisis seo.ppt2
Analisis seo.ppt2Analisis seo.ppt2
Analisis seo.ppt2
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
 
Presentación html5
Presentación html5Presentación html5
Presentación html5
 
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffffMotores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
 
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13
Taller Kali Linux3: Rastreando Informacion y Objetivos -HackMadrid ene13
 
Scraping the web with python
Scraping the web with pythonScraping the web with python
Scraping the web with python
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
Seo
SeoSeo
Seo
 
Documento Web2Py
Documento Web2PyDocumento Web2Py
Documento Web2Py
 
Web semantica
Web semanticaWeb semantica
Web semantica
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
 
Drupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalDrupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en Drupal
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield Protector
 
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
 
Sistema modular de representación de información para la plataforma de web se...
Sistema modular de representación de información para la plataforma de web se...Sistema modular de representación de información para la plataforma de web se...
Sistema modular de representación de información para la plataforma de web se...
 
3A5 - avendaño gary - tarea 2
3A5 - avendaño gary - tarea 23A5 - avendaño gary - tarea 2
3A5 - avendaño gary - tarea 2
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
 
Silverstripe equipo7-victoriano-bartolo-jesus-martinez
Silverstripe equipo7-victoriano-bartolo-jesus-martinezSilverstripe equipo7-victoriano-bartolo-jesus-martinez
Silverstripe equipo7-victoriano-bartolo-jesus-martinez
 

Kürzlich hochgeladen

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Kürzlich hochgeladen (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Taller de Scrapy - Barcelona Activa

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Ejemplo caso de uso con AutoScraping  Captura de Daily Deals y ofertas de sitios webs de e-commerce para Offertazo (www.offertazo.com)