#MéridaTechMeetup
Extracción de datos con Python (webscraping)
Ernesto Crespo
● Blog: http://blog.crespo.org.ve
● Blog: ht...
#MéridaTechMeetup
Extracción de datos con Python (webscraping)
"Somos como enanos a los hombros de gigantes. Podemos ver m...
#MéridaTechMeetup
Extracción de datos con Python (webscraping)
Agenda:
● ¿Qué es webscraping?
● ¿Qué es Python?
● Gobierno...
#MéridaTechMeetup
¿Qué es webscraping?
Es el proceso de recolección o extracción de datos de páginas web de forma automáti...
#MéridaTechMeetup
¿Qué es Python?
Lenguaje de programación interpretado multiparadigma, soporta orientación a objetos,
pro...
#MéridaTechMeetup
Gobierno Abierto:
● Datos Abierto
● Procesos Abiertos
● Redes Sociales
● Colaboración
● Participación ci...
#MéridaTechMeetup
Datos Abiertos (Datos vinculados):
Es una filosofía y práctica que persigue que determinados datos esten...
#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 ...
#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...
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con pyquery
#!/usr/bin/env python
#importar pyquery
from pyque...
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con ScrapperWiki
#!/usr/bin/env python
#importar scraperwiki
i...
#MéridaTechMeetup
Sitio a extraer datos:www.timeanddate.com con Webscraping
#!/usr/bin/env python
#De webscraping se impor...
#MéridaTechMeetup
Extracción de datos con el Framework Scrapy
● Extracción de datos de páginas web con scrapy
http://blog....
#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
...
Próxima SlideShare
Cargando en…5
×

Extracción de datos de páginas web con Python (webscraping)

5.379 visualizaciones

Publicado el

Charla del uso de herramientas de extracción de datos de páginas web (webscraping) con Python

Publicado en: Datos y análisis
0 comentarios
4 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
5.379
En SlideShare
0
De insertados
0
Número de insertados
645
Acciones
Compartido
0
Descargas
85
Comentarios
0
Recomendaciones
4
Insertados 0
No insertados

No hay notas en la diapositiva.

Extracción de datos de páginas web con Python (webscraping)

  1. 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. 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. 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. 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. 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. 6. #MéridaTechMeetup Gobierno Abierto: ● Datos Abierto ● Procesos Abiertos ● Redes Sociales ● Colaboración ● Participación ciudadana
  7. 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. 8. #MéridaTechMeetup Pero hasta ahora no hay muchos datos abiertos...
  9. 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. 10. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  11. 11. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  12. 12. #MéridaTechMeetup Sitio a extraer datos:www.timeanddate.com
  13. 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. 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. 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. 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. 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
  18. 18. #MéridaTechMeetup Iniciativas de comunidades
  19. 19. #MéridaTechMeetup Iniciativas de comunidades
  20. 20. #MéridaTechMeetup
  21. 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

×