SlideShare una empresa de Scribd logo

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)

Más contenido relacionado

La actualidad más candente

Mongo DB
Mongo DBMongo DB
MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010
Rafael 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 analysis
Tensor
 
OPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSISOPEN SOURCE ANALYSIS
OPEN SOURCE ANALYSIS
Tensor
 
motores de busqueda
motores de busquedamotores de busqueda
motores de busqueda
UNIVERSIDAD YACAMBU
 
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
 
MongoDB y bluemix
MongoDB y bluemixMongoDB y bluemix
MongoDB y bluemix
Victor Cuervo
 
NoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google MapsNoSQL, Mongo DB & Google Maps
NoSQL, Mongo DB & Google Maps
Daniel Salas Denegri
 
Mongo Mapper
Mongo MapperMongo Mapper
Mongo Mapper
Francisco Viramontes
 
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
Julián Castiblanco
 
¿que es mongodb?
¿que es mongodb?¿que es mongodb?
¿que es mongodb?
mongo4dbablog
 
Introducción a MongoDB
Introducción a MongoDBIntroducción a MongoDB
Introducción a MongoDB
Diamond 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.a
cristian17112010
 
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 SQLite
Alejandro Ramos
 

La actualidad más candente (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
 

Similar a Taller de Scrapy - Barcelona Activa

Analisis seo.ppt2
Analisis seo.ppt2Analisis seo.ppt2
Analisis seo.ppt2
Maribel_kar
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
jcarazo
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
Maribel Mercado
 
Presentación html5
Presentación html5Presentación html5
Presentación html5aydimdagam
 
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffffMotores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
Motores dfsdtgdfgdfgdfgdfgdfsgdfgsdfgfdsggffffffffffffffffffffffffffffffffff
MiguelRomero01
 
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
peter69
 
Scraping the web with python
Scraping the web with pythonScraping the web with python
Scraping the web with python
Jose Manuel Ortega Candel
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
Gorka Prieto
 
Seo
SeoSeo
Documento Web2Py
Documento Web2PyDocumento Web2Py
Documento Web2Py
Frameworkuce Uce
 
Web semantica
Web semanticaWeb semantica
Web semantica
Govani Sanchez
 
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
Carlos Camacho
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
daysi
 
Drupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalDrupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en Drupal
Rojomorgan
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield Protector
Chema 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
 
3A5 - avendaño gary - tarea 2
3A5 - avendaño gary - tarea 23A5 - avendaño gary - tarea 2
3A5 - avendaño gary - tarea 2
Gary Richard Avendaño Rosado
 
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
nacho 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
 

Similar a 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
 

Último

trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 

Último (20)

trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 

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)