SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
#MéridaTechMeetup
Extracción de datos con Python (webscraping)
Ernesto Crespo
● Blog: http://blog.crespo.org.ve
● Blog: http://ecrespo.github.io
● Github: https://github.com/ecrespo
● Bitbucket https://bitbucket.org/ecrespo
● Twitter: https://twitter.com/_seraph1
#MéridaTechMeetup
Extracción de datos con Python (webscraping)
"Somos como enanos a los hombros de gigantes. Podemos ver más, y más
lejos que ellos, no porque la agudeza de nuestra vista ni por la altura de
nuestro cuerpo, sino porque somos levantados por su gran altura".
Bernardo de Chartres
"Extración de datos con python (webscraping) " by Ernesto Crespo is licensed
under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional License.
#MéridaTechMeetup
Extracción de datos con Python (webscraping)
Agenda:
● ¿Qué es webscraping?
● ¿Qué es Python?
● Gobierno Abierto
● Datos Abiertos
● Herramientas de Python para extraer datos de páginas web
● Extraer datos con Beautiful Soup 4
● Extraer datos con Pyquery
● Extraer datos con Scrapperwiki
● Extraer datos conWebscraping
● Extraer datos con el Framework Scrapy
● Iniciativas de comunidades
#MéridaTechMeetup
¿Qué es webscraping?
Es el proceso de recolección o extracción de datos de páginas web de forma automática,
es un campo muy activo y en desarrollo que comparte objetivos con la web semántica,
el procesamiento de texto, inteligencia artificial e interacción humano computador.
#MéridaTechMeetup
¿Qué es Python?
Lenguaje de programación interpretado multiparadigma, soporta orientación a objetos,
programación imperativa y, en menor medida programación funcional. Usa tipado
dinámico y es multiplataforma.
Es administrado por la Python Software Foundation y posee una Licencia de código
Abierto Python Software Foundation License que es compatible con la Licencia Pública
GNU.
http://www.python.org
#MéridaTechMeetup
Gobierno Abierto:
● Datos Abierto
● Procesos Abiertos
● Redes Sociales
● Colaboración
● Participación ciudadana
#MéridaTechMeetup
Datos Abiertos (Datos vinculados):
Es una filosofía y práctica que persigue que determinados datos esten
disponibles de forma libre para todo el mundo, sin restricciones de derecho de
autor, de patentes o de otros mecanismos de control.
#MéridaTechMeetup
Pero hasta ahora no hay muchos datos abiertos...
#MéridaTechMeetup
Herramientas de Python para extraer datos de páginas web
● Urllib y urlopen
● Beautiful Soup 4
● Python Mechanize (basado en perl mechanize)
● Pyquery
● Scrapermark
● ScrapperWiki
● Webscraping
● Scrapy : Framework para la extracción de datos de forma automatizada
● Selenium (para próxima versión de la presentación)
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con Beautiful Soup 4
#!/usr/bin/env python
#Importar urllib2 y BeautifulSoup
import urllib2
from BeautifulSoup import BeautifulSoup
#Se crea la instancia y se abre el url de timeanddate
#buscando la informacion de la hora de salir el sol en Venezuela
soup = BeautifulSoup(urllib2.urlopen('http://www.timeanddate.com/worldclock/astronomy.html?n=58').read())
#Se busca la palabra table, y de ahi class y se busca el contenido
#de cada columna de la tabla.
for row in soup('table', {'class': 'spad'})[0].tbody('tr'):
tds = row('td')
#Se muestra la fecha y hora de la salida del sol
print tds[0].string, tds[1].string
El resultado de la ejecución es la siguiente:
23 Oct 2013 05:47
24 Oct 2013 05:47
25 Oct 2013 05:47
26 Oct 2013 05:48
27 Oct 2013 05:48
28 Oct 2013 05:48
29 Oct 2013 05:48
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con pyquery
#!/usr/bin/env python
#importar pyquery
from pyquery import *
#Se Crea la instancia de la Clase PyQuery pasando el url de
#timeanddate.
html = PyQuery(url='http://www.timeanddate.com/worldclock/astronomy.html?n=58')
#Se busca el tag html de la tabla.
#Recibe todos los elementos de la tabla.
trs = html('table.spad tbody tr')
#Se muestra los elementos de la tabla.
print trs
#Se recorre los elementos de la tabla
for tr in trs:
tds = tr.getchildren()
print tds[1].text, tds[2].text
El resultado de la ejecución del script se muestra a continuación:
05:47 17:36
05:47 17:36
05:48 17:35
05:48 17:35
05:48 17:35
05:48 17:34
05:48 17:34
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con ScrapperWiki
#!/usr/bin/env python
#importar scraperwiki
import scraperwiki
#importar lxml.html
import lxml.html
#Url de la pagina timeanddate de la
#info de Venezuela.
url = "http://www.timeanddate.com/worldclock/astronomy.html?n=58"
#se crea la instancia de la clase scrape pasando el
#url del sitio a extraer la informacion.
html = scraperwiki.scrape(url)
#Se busca en el codigo html de la pagina
root = lxml.html.fromstring(html)
#Se crea una lista que almacenara los diccionarios conteniendo
#la informacion que se necesita
lista = []
#Se busca el tag html tbody y tr.
#Esto genera una lista con el contenido del tbody.Esto
#se recorre dicha lista
for tr in root.cssselect("tbody tr "):
#Se selecciona la informacion que aparece en
#el tag html td
tds = tr.cssselect("td")
#Se guarda la informacion en un diccionario
Datos = { 'fecha': tds[0].text_content(), 'amanecer': tds[1].text_content(), 'atardecer': tds[2].text_content() }
#Se agrega los datos a la lista
lista.append(datos)
#Se muestra la lista en pantalla
for i in lista:
print i
El resultado de la ejecución del script a continuación:
{'fecha': '26 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'}
{'fecha': '27 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'}
{'fecha': '28 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'}
{'fecha': '29 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'}
{'fecha': '30 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'}
{'fecha': '31 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'}
{'fecha': '1 Nov 2013', 'atardecer': '17:33', 'amanecer': '05:49'}
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con Webscraping
#!/usr/bin/env python
#De webscraping se importa download y xpath
from webscraping import download, xpath
#Se define la instancia Download
D = download.Download()
#Se obtiene la informacion de la salida y ocultamiento del
#sol en Venezuela desde la pagina timeanddate.
html = D.get('http://www.timeanddate.com/worldclock/astronomy.html?n=58')
#Se busca la informacion en la tabla donde se muestra.
for row in xpath.search(html, '//table[@class="spad"]/tbody/tr'):
#Se busca en la fila el tag /td
cols = xpath.search(row, '/td')
#Se muestra la informacion en pantalla
print 'Amanecer: %s, Atardecer: %s' % (cols[1], cols[2])
A continuación se muestra el resultado de la ejecución del script:
Amanecer: 05:47, Atardecer: 17:36
Amanecer: 05:47, Atardecer: 17:36
Amanecer: 05:47, Atardecer: 17:36
Amanecer: 05:48, Atardecer: 17:35
Amanecer: 05:48, Atardecer: 17:35
Amanecer: 05:48, Atardecer: 17:35
Amanecer: 05:48, Atardecer: 17:34
#MéridaTechMeetup
Extracción de datos con el Framework Scrapy
● Extracción de datos de páginas web con scrapy
http://blog.crespo.org.ve/2015/01/extraccion-de-datos-de-paginas-web-con.html
● Extracción de datos de páginas web con scrapy y MongoDB
http://blog.crespo.org.ve/2015/01/extraccion-de-datos-de-paginas-web-con_2.html
#MéridaTechMeetup
Iniciativas de comunidades
#MéridaTechMeetup
Iniciativas de comunidades
#MéridaTechMeetup
#MéridaTechMeetup
¿Preguntas?
"Si he logrado ver más lejos, ha sido porque he subido a hombros de gigantes".
Isaac Newton
Descarga de la presentación:
http://www.slideshare.net/ecrespo/webscraping
Blog: http://blog.crespo.org.ve/search/label/webscraping

Weitere ähnliche Inhalte

Was ist angesagt?

Comercio electrónico global y colaboración
Comercio electrónico global y colaboraciónComercio electrónico global y colaboración
Comercio electrónico global y colaboraciónCamiLa CifuenTez
 
El Plan estratégico de Sistemas de Información
El Plan estratégico de Sistemas de InformaciónEl Plan estratégico de Sistemas de Información
El Plan estratégico de Sistemas de InformaciónMaría Isabel Bautista
 
Tipos sistemas de información
Tipos sistemas de informaciónTipos sistemas de información
Tipos sistemas de informaciónbrugman1985
 
Arquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasArquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasRosario Dguez
 
Objetivos básicos del sistema de información...!
Objetivos básicos del sistema de información...!Objetivos básicos del sistema de información...!
Objetivos básicos del sistema de información...!alejasebas
 
Simbología ANSI y ASME
Simbología ANSI y ASMESimbología ANSI y ASME
Simbología ANSI y ASMEracamachop
 
SISTEMA DE AUTOMATIZACION DE OFICINAS
SISTEMA DE AUTOMATIZACION DE OFICINASSISTEMA DE AUTOMATIZACION DE OFICINAS
SISTEMA DE AUTOMATIZACION DE OFICINASdouglas79
 
Sistemas De Informacion Marketing
Sistemas De Informacion MarketingSistemas De Informacion Marketing
Sistemas De Informacion MarketingRicardo Mansilla
 
Teleproceso
TeleprocesoTeleproceso
Teleprocesomarigp10
 
Clase admon de la producción
Clase admon de la producciónClase admon de la producción
Clase admon de la producciónCHRISTIAN934528
 
Etapas de analisis de sistemas
Etapas de analisis de sistemasEtapas de analisis de sistemas
Etapas de analisis de sistemasKaarlOoss Gaarcia
 
Capacitacion crm
Capacitacion crmCapacitacion crm
Capacitacion crmpredeitor
 
El Proceso De PlaneacióN TecnolóGica
El Proceso De PlaneacióN TecnolóGicaEl Proceso De PlaneacióN TecnolóGica
El Proceso De PlaneacióN TecnolóGicajaimeramos
 
Derecho, legislacion y normatividad ambiental
Derecho, legislacion y normatividad ambientalDerecho, legislacion y normatividad ambiental
Derecho, legislacion y normatividad ambientalangel cisneros
 
Sistema de Información I
Sistema de Información I Sistema de Información I
Sistema de Información I Kerin Machado
 
Taller de investigación 1 unidad 1
Taller de investigación 1 unidad 1Taller de investigación 1 unidad 1
Taller de investigación 1 unidad 1Yaby M
 

Was ist angesagt? (20)

Comercio electrónico global y colaboración
Comercio electrónico global y colaboraciónComercio electrónico global y colaboración
Comercio electrónico global y colaboración
 
El Plan estratégico de Sistemas de Información
El Plan estratégico de Sistemas de InformaciónEl Plan estratégico de Sistemas de Información
El Plan estratégico de Sistemas de Información
 
Tipos sistemas de información
Tipos sistemas de informaciónTipos sistemas de información
Tipos sistemas de información
 
Arquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasArquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidas
 
Origen, importancia y caracteristicas de la ingenieria economica
Origen, importancia y caracteristicas de la ingenieria economicaOrigen, importancia y caracteristicas de la ingenieria economica
Origen, importancia y caracteristicas de la ingenieria economica
 
Sistemas expertos en la ingeniería
Sistemas expertos en la ingenieríaSistemas expertos en la ingeniería
Sistemas expertos en la ingeniería
 
Graficos por Computadora (1)
Graficos por Computadora (1)Graficos por Computadora (1)
Graficos por Computadora (1)
 
Objetivos básicos del sistema de información...!
Objetivos básicos del sistema de información...!Objetivos básicos del sistema de información...!
Objetivos básicos del sistema de información...!
 
Simbología ANSI y ASME
Simbología ANSI y ASMESimbología ANSI y ASME
Simbología ANSI y ASME
 
Unidad 1 administracion de proyectos
Unidad 1 administracion de proyectosUnidad 1 administracion de proyectos
Unidad 1 administracion de proyectos
 
SISTEMA DE AUTOMATIZACION DE OFICINAS
SISTEMA DE AUTOMATIZACION DE OFICINASSISTEMA DE AUTOMATIZACION DE OFICINAS
SISTEMA DE AUTOMATIZACION DE OFICINAS
 
Sistemas De Informacion Marketing
Sistemas De Informacion MarketingSistemas De Informacion Marketing
Sistemas De Informacion Marketing
 
Teleproceso
TeleprocesoTeleproceso
Teleproceso
 
Clase admon de la producción
Clase admon de la producciónClase admon de la producción
Clase admon de la producción
 
Etapas de analisis de sistemas
Etapas de analisis de sistemasEtapas de analisis de sistemas
Etapas de analisis de sistemas
 
Capacitacion crm
Capacitacion crmCapacitacion crm
Capacitacion crm
 
El Proceso De PlaneacióN TecnolóGica
El Proceso De PlaneacióN TecnolóGicaEl Proceso De PlaneacióN TecnolóGica
El Proceso De PlaneacióN TecnolóGica
 
Derecho, legislacion y normatividad ambiental
Derecho, legislacion y normatividad ambientalDerecho, legislacion y normatividad ambiental
Derecho, legislacion y normatividad ambiental
 
Sistema de Información I
Sistema de Información I Sistema de Información I
Sistema de Información I
 
Taller de investigación 1 unidad 1
Taller de investigación 1 unidad 1Taller de investigación 1 unidad 1
Taller de investigación 1 unidad 1
 

Andere mochten auch

Desarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyDesarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyErnesto Crespo
 
Creando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyCreando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyNahuel Defossé
 
Desarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y AndroidDesarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y AndroidTatiana Al-Chueyr
 
Seguridad WordPress en Sevilla
Seguridad WordPress en SevillaSeguridad WordPress en Sevilla
Seguridad WordPress en SevillaQuantiKa14
 
Portfolio Paradigma Tecnologico
Portfolio Paradigma TecnologicoPortfolio Paradigma Tecnologico
Portfolio Paradigma TecnologicoParadigma Digital
 
Como recopilar datos de un dominio
Como recopilar datos de un dominioComo recopilar datos de un dominio
Como recopilar datos de un dominioAuxi Gifmania
 
Standalone Android Apps in Python
Standalone Android Apps in PythonStandalone Android Apps in Python
Standalone Android Apps in PythonBaptiste Lagarde
 
Kivy - Python UI Library for Any Platform
Kivy - Python UI Library for Any PlatformKivy - Python UI Library for Any Platform
Kivy - Python UI Library for Any PlatformSaurav Singhi
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 MinMarco Mansilla
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonErnesto Crespo
 
Historia del internet (RESUMEN)
Historia del internet (RESUMEN)Historia del internet (RESUMEN)
Historia del internet (RESUMEN)LithiumLat
 
8 Simple Ways to Hack Your Joomla
8 Simple Ways to Hack Your Joomla8 Simple Ways to Hack Your Joomla
8 Simple Ways to Hack Your JoomlaSiteGround.com
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónFutura Networks
 
El uso de los verbos auxiliares do does
El uso de los verbos auxiliares do  doesEl uso de los verbos auxiliares do  does
El uso de los verbos auxiliares do doesJuliaLucchesi5
 
Presente simple do y does
Presente simple do y doesPresente simple do y does
Presente simple do y doesNilda Jimenez
 

Andere mochten auch (20)

Desarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y KivyDesarrollo de aplicaciones multiplataforma con python y Kivy
Desarrollo de aplicaciones multiplataforma con python y Kivy
 
Creando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyCreando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con Kivy
 
Desarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y AndroidDesarollando aplicaciones móviles con Python y Android
Desarollando aplicaciones móviles con Python y Android
 
Seguridad WordPress en Sevilla
Seguridad WordPress en SevillaSeguridad WordPress en Sevilla
Seguridad WordPress en Sevilla
 
Portfolio Paradigma Tecnologico
Portfolio Paradigma TecnologicoPortfolio Paradigma Tecnologico
Portfolio Paradigma Tecnologico
 
Como recopilar datos de un dominio
Como recopilar datos de un dominioComo recopilar datos de un dominio
Como recopilar datos de un dominio
 
Kivy for you
Kivy for youKivy for you
Kivy for you
 
Developing apps with Kivy
Developing apps with KivyDeveloping apps with Kivy
Developing apps with Kivy
 
Standalone Android Apps in Python
Standalone Android Apps in PythonStandalone Android Apps in Python
Standalone Android Apps in Python
 
Servicios web
Servicios webServicios web
Servicios web
 
Kivy - Python UI Library for Any Platform
Kivy - Python UI Library for Any PlatformKivy - Python UI Library for Any Platform
Kivy - Python UI Library for Any Platform
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
Uso de navegadores
Uso de navegadoresUso de navegadores
Uso de navegadores
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y Python
 
Historia del internet (RESUMEN)
Historia del internet (RESUMEN)Historia del internet (RESUMEN)
Historia del internet (RESUMEN)
 
Buscando informacion
Buscando informacionBuscando informacion
Buscando informacion
 
8 Simple Ways to Hack Your Joomla
8 Simple Ways to Hack Your Joomla8 Simple Ways to Hack Your Joomla
8 Simple Ways to Hack Your Joomla
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generación
 
El uso de los verbos auxiliares do does
El uso de los verbos auxiliares do  doesEl uso de los verbos auxiliares do  does
El uso de los verbos auxiliares do does
 
Presente simple do y does
Presente simple do y doesPresente simple do y does
Presente simple do y does
 

Ähnlich wie Extracción de datos con Python (webscraping

Pentesting 101 por Paulino Calderon
Pentesting 101 por Paulino CalderonPentesting 101 por Paulino Calderon
Pentesting 101 por Paulino CalderonWebsec México, S.C.
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanJose Manuel Ortega Candel
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Alejandro Ramos
 
#CONPilar17: Ser curioso NO es una opción
#CONPilar17: Ser curioso NO es una opción#CONPilar17: Ser curioso NO es una opción
#CONPilar17: Ser curioso NO es una opciónMarcos Fuentes
 
Un caso Forense: La Red y la Memoria RAM
Un caso Forense: La Red y la Memoria RAMUn caso Forense: La Red y la Memoria RAM
Un caso Forense: La Red y la Memoria RAMEventos Creativos
 
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...Software Guru
 
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark NetTecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark NetJavier Junquera
 
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]RootedCON
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Abel Alejandro Coronado Iruegas
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con PythonManuel Pérez
 
Trabajando con gdal, usando fwtools
Trabajando con gdal, usando fwtoolsTrabajando con gdal, usando fwtools
Trabajando con gdal, usando fwtoolsmanalva
 
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasXXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasJM Robles
 
Curso de Scratch Día 1 (CPETIG)
Curso de Scratch Día 1 (CPETIG)Curso de Scratch Día 1 (CPETIG)
Curso de Scratch Día 1 (CPETIG)Programamos
 

Ähnlich wie Extracción de datos con Python (webscraping (20)

Pentesting 101 por Paulino Calderon
Pentesting 101 por Paulino CalderonPentesting 101 por Paulino Calderon
Pentesting 101 por Paulino Calderon
 
Python & OSINT para proyectos de seguridad
Python & OSINT para proyectos de seguridadPython & OSINT para proyectos de seguridad
Python & OSINT para proyectos de seguridad
 
Odd2015 scraping
Odd2015 scrapingOdd2015 scraping
Odd2015 scraping
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
Big data
Big dataBig data
Big data
 
Crackers: Tecnicas y Tacticas
Crackers: Tecnicas y Tacticas Crackers: Tecnicas y Tacticas
Crackers: Tecnicas y Tacticas
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0
 
#CONPilar17: Ser curioso NO es una opción
#CONPilar17: Ser curioso NO es una opción#CONPilar17: Ser curioso NO es una opción
#CONPilar17: Ser curioso NO es una opción
 
Un caso Forense: La Red y la Memoria RAM
Un caso Forense: La Red y la Memoria RAMUn caso Forense: La Red y la Memoria RAM
Un caso Forense: La Red y la Memoria RAM
 
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
 
Scraping the web with python
Scraping the web with pythonScraping the web with python
Scraping the web with python
 
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark NetTecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
 
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
 
Hackon URJC
Hackon URJCHackon URJC
Hackon URJC
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con Python
 
Trabajando con gdal, usando fwtools
Trabajando con gdal, usando fwtoolsTrabajando con gdal, usando fwtools
Trabajando con gdal, usando fwtools
 
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasXXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
 
Android swissknife
Android swissknifeAndroid swissknife
Android swissknife
 
Curso de Scratch Día 1 (CPETIG)
Curso de Scratch Día 1 (CPETIG)Curso de Scratch Día 1 (CPETIG)
Curso de Scratch Día 1 (CPETIG)
 

Mehr von Ernesto Crespo

Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...Ernesto Crespo
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Ernesto Crespo
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaErnesto Crespo
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperErnesto Crespo
 
Empaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialEmpaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialErnesto Crespo
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?Ernesto Crespo
 

Mehr von Ernesto Crespo (12)

Internet de las cosas
Internet  de las cosasInternet  de las cosas
Internet de las cosas
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 
Colaborar debian
Colaborar debianColaborar debian
Colaborar debian
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y Canaima
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima
 
Colaborar en Debian
Colaborar en DebianColaborar en Debian
Colaborar en Debian
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeper
 
Python en Android
Python en AndroidPython en Android
Python en Android
 
Empaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialEmpaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurial
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?
 

Kürzlich hochgeladen

accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdf
accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdfaccidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdf
accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdfIrapuatoCmovamos
 
TECNOLOGIA Salaverry descripción del sector .pdf
TECNOLOGIA Salaverry  descripción del sector  .pdfTECNOLOGIA Salaverry  descripción del sector  .pdf
TECNOLOGIA Salaverry descripción del sector .pdfleonardomendocilla23
 
taller de ujieres de la iglesia local pptx
taller de ujieres de la iglesia local pptxtaller de ujieres de la iglesia local pptx
taller de ujieres de la iglesia local pptxSandraEspaa8
 
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptx
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptxSISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptx
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptxryo516
 
Las Características Principales de las Redes.pptx
Las Características Principales de las Redes.pptxLas Características Principales de las Redes.pptx
Las Características Principales de las Redes.pptxecarvictoriajhan
 
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024OBSERVATORIOREGIONAL
 
Politicas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaPoliticas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaAlfredo Zaconeta
 
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024OBSERVATORIOREGIONAL
 
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024OBSERVATORIOREGIONAL
 
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024OBSERVATORIOREGIONAL
 
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024OBSERVATORIOREGIONAL
 
Competencia el ingrediente para crecer.pdf
Competencia el ingrediente para crecer.pdfCompetencia el ingrediente para crecer.pdf
Competencia el ingrediente para crecer.pdfAlfredo Zaconeta
 

Kürzlich hochgeladen (12)

accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdf
accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdfaccidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdf
accidentes de tránsito 1ER BIMESTRE 2023-FINAL.pdf
 
TECNOLOGIA Salaverry descripción del sector .pdf
TECNOLOGIA Salaverry  descripción del sector  .pdfTECNOLOGIA Salaverry  descripción del sector  .pdf
TECNOLOGIA Salaverry descripción del sector .pdf
 
taller de ujieres de la iglesia local pptx
taller de ujieres de la iglesia local pptxtaller de ujieres de la iglesia local pptx
taller de ujieres de la iglesia local pptx
 
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptx
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptxSISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptx
SISTEMAS REGISTRALES GUATEMALTECOS QUINTA.pptx
 
Las Características Principales de las Redes.pptx
Las Características Principales de las Redes.pptxLas Características Principales de las Redes.pptx
Las Características Principales de las Redes.pptx
 
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, JARAL DEL PROGRESO, FEBRERO 2024
 
Politicas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaPoliticas publicas un balance necesario Bolivia
Politicas publicas un balance necesario Bolivia
 
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, FEBRERO 2024
 
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, PÉNJAMO, FEBRERO 2024
 
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, VALLE DE SANTIAGO, FEBRERO 2024
 
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024
REPORTE SOBRE INCIDENCIA DELICTIVA, SILAO, FEBRERO 2024
 
Competencia el ingrediente para crecer.pdf
Competencia el ingrediente para crecer.pdfCompetencia el ingrediente para crecer.pdf
Competencia el ingrediente para crecer.pdf
 

Extracción de datos con Python (webscraping

  • 1. #MéridaTechMeetup Extracción de datos con Python (webscraping) Ernesto Crespo ● Blog: http://blog.crespo.org.ve ● Blog: http://ecrespo.github.io ● Github: https://github.com/ecrespo ● Bitbucket https://bitbucket.org/ecrespo ● Twitter: https://twitter.com/_seraph1
  • 2. #MéridaTechMeetup Extracción de datos con Python (webscraping) "Somos como enanos a los hombros de gigantes. Podemos ver más, y más lejos que ellos, no porque la agudeza de nuestra vista ni por la altura de nuestro cuerpo, sino porque somos levantados por su gran altura". Bernardo de Chartres "Extración de datos con python (webscraping) " by Ernesto Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
  • 3. #MéridaTechMeetup Extracción de datos con Python (webscraping) Agenda: ● ¿Qué es webscraping? ● ¿Qué es Python? ● Gobierno Abierto ● Datos Abiertos ● Herramientas de Python para extraer datos de páginas web ● Extraer datos con Beautiful Soup 4 ● Extraer datos con Pyquery ● Extraer datos con Scrapperwiki ● Extraer datos conWebscraping ● Extraer datos con el Framework Scrapy ● Iniciativas de comunidades
  • 4. #MéridaTechMeetup ¿Qué es webscraping? Es el proceso de recolección o extracción de datos de páginas web de forma automática, es un campo muy activo y en desarrollo que comparte objetivos con la web semántica, el procesamiento de texto, inteligencia artificial e interacción humano computador.
  • 5. #MéridaTechMeetup ¿Qué es Python? Lenguaje de programación interpretado multiparadigma, soporta orientación a objetos, programación imperativa y, en menor medida programación funcional. Usa tipado dinámico y es multiplataforma. Es administrado por la Python Software Foundation y posee una Licencia de código Abierto Python Software Foundation License que es compatible con la Licencia Pública GNU. http://www.python.org
  • 6. #MéridaTechMeetup Gobierno Abierto: ● Datos Abierto ● Procesos Abiertos ● Redes Sociales ● Colaboración ● Participación ciudadana
  • 7. #MéridaTechMeetup Datos Abiertos (Datos vinculados): Es una filosofía y práctica que persigue que determinados datos esten disponibles de forma libre para todo el mundo, sin restricciones de derecho de autor, de patentes o de otros mecanismos de control.
  • 8. #MéridaTechMeetup Pero hasta ahora no hay muchos datos abiertos...
  • 9. #MéridaTechMeetup Herramientas de Python para extraer datos de páginas web ● Urllib y urlopen ● Beautiful Soup 4 ● Python Mechanize (basado en perl mechanize) ● Pyquery ● Scrapermark ● ScrapperWiki ● Webscraping ● Scrapy : Framework para la extracción de datos de forma automatizada ● Selenium (para próxima versión de la presentación)
  • 10. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  • 11. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  • 12. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  • 13. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com con Beautiful Soup 4 #!/usr/bin/env python #Importar urllib2 y BeautifulSoup import urllib2 from BeautifulSoup import BeautifulSoup #Se crea la instancia y se abre el url de timeanddate #buscando la informacion de la hora de salir el sol en Venezuela soup = BeautifulSoup(urllib2.urlopen('http://www.timeanddate.com/worldclock/astronomy.html?n=58').read()) #Se busca la palabra table, y de ahi class y se busca el contenido #de cada columna de la tabla. for row in soup('table', {'class': 'spad'})[0].tbody('tr'): tds = row('td') #Se muestra la fecha y hora de la salida del sol print tds[0].string, tds[1].string El resultado de la ejecución es la siguiente: 23 Oct 2013 05:47 24 Oct 2013 05:47 25 Oct 2013 05:47 26 Oct 2013 05:48 27 Oct 2013 05:48 28 Oct 2013 05:48 29 Oct 2013 05:48
  • 14. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com con pyquery #!/usr/bin/env python #importar pyquery from pyquery import * #Se Crea la instancia de la Clase PyQuery pasando el url de #timeanddate. html = PyQuery(url='http://www.timeanddate.com/worldclock/astronomy.html?n=58') #Se busca el tag html de la tabla. #Recibe todos los elementos de la tabla. trs = html('table.spad tbody tr') #Se muestra los elementos de la tabla. print trs #Se recorre los elementos de la tabla for tr in trs: tds = tr.getchildren() print tds[1].text, tds[2].text El resultado de la ejecución del script se muestra a continuación: 05:47 17:36 05:47 17:36 05:48 17:35 05:48 17:35 05:48 17:35 05:48 17:34 05:48 17:34
  • 15. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com con ScrapperWiki #!/usr/bin/env python #importar scraperwiki import scraperwiki #importar lxml.html import lxml.html #Url de la pagina timeanddate de la #info de Venezuela. url = "http://www.timeanddate.com/worldclock/astronomy.html?n=58" #se crea la instancia de la clase scrape pasando el #url del sitio a extraer la informacion. html = scraperwiki.scrape(url) #Se busca en el codigo html de la pagina root = lxml.html.fromstring(html) #Se crea una lista que almacenara los diccionarios conteniendo #la informacion que se necesita lista = [] #Se busca el tag html tbody y tr. #Esto genera una lista con el contenido del tbody.Esto #se recorre dicha lista for tr in root.cssselect("tbody tr "): #Se selecciona la informacion que aparece en #el tag html td tds = tr.cssselect("td") #Se guarda la informacion en un diccionario Datos = { 'fecha': tds[0].text_content(), 'amanecer': tds[1].text_content(), 'atardecer': tds[2].text_content() } #Se agrega los datos a la lista lista.append(datos) #Se muestra la lista en pantalla for i in lista: print i El resultado de la ejecución del script a continuación: {'fecha': '26 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'} {'fecha': '27 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'} {'fecha': '28 Oct 2013', 'atardecer': '17:35', 'amanecer': '05:48'} {'fecha': '29 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'} {'fecha': '30 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'} {'fecha': '31 Oct 2013', 'atardecer': '17:34', 'amanecer': '05:48'} {'fecha': '1 Nov 2013', 'atardecer': '17:33', 'amanecer': '05:49'}
  • 16. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com con Webscraping #!/usr/bin/env python #De webscraping se importa download y xpath from webscraping import download, xpath #Se define la instancia Download D = download.Download() #Se obtiene la informacion de la salida y ocultamiento del #sol en Venezuela desde la pagina timeanddate. html = D.get('http://www.timeanddate.com/worldclock/astronomy.html?n=58') #Se busca la informacion en la tabla donde se muestra. for row in xpath.search(html, '//table[@class="spad"]/tbody/tr'): #Se busca en la fila el tag /td cols = xpath.search(row, '/td') #Se muestra la informacion en pantalla print 'Amanecer: %s, Atardecer: %s' % (cols[1], cols[2]) A continuación se muestra el resultado de la ejecución del script: Amanecer: 05:47, Atardecer: 17:36 Amanecer: 05:47, Atardecer: 17:36 Amanecer: 05:47, Atardecer: 17:36 Amanecer: 05:48, Atardecer: 17:35 Amanecer: 05:48, Atardecer: 17:35 Amanecer: 05:48, Atardecer: 17:35 Amanecer: 05:48, Atardecer: 17:34
  • 17. #MéridaTechMeetup Extracción de datos con el Framework Scrapy ● Extracción de datos de páginas web con scrapy http://blog.crespo.org.ve/2015/01/extraccion-de-datos-de-paginas-web-con.html ● Extracción de datos de páginas web con scrapy y MongoDB http://blog.crespo.org.ve/2015/01/extraccion-de-datos-de-paginas-web-con_2.html
  • 21. #MéridaTechMeetup ¿Preguntas? "Si he logrado ver más lejos, ha sido porque he subido a hombros de gigantes". Isaac Newton Descarga de la presentación: http://www.slideshare.net/ecrespo/webscraping Blog: http://blog.crespo.org.ve/search/label/webscraping