SlideShare a Scribd company logo
1 of 17
Download to read offline
Selenium como herramienta
de Web Scraping
@dani_latorre - 26/08/2013 - Zaragoza Python Days
Web Scraping
• “... es una técnica utilizada mediante
programas de software para extraer
información de sitios web.”
• Ingeniería inversa
• Controvertido
Selenium
• “Selenium is a suite of tools to
automate web browsers across many
platforms.”
• Testing de aceptación web
• Automatización de acciones de usuario
• Web scraping
Bindings
• Python
• Java
• C#
• Ruby
• Javascript - Node
• PHP, Perl (mantenidos por terceros)
Otras librerías
• urllib
• Mechanize
• BeautifulSoup/lxml
• Scrapy (crawling)
Viene bien
• XPath
• Selectores CSS
• Expresiones Regulares
• Mucha paciencia
¿Por qué selenium?
Caso ShuttleCloud
• Migración entre proveedores de email
• Necesidad de escalabilidad
• Homogeneizar scrapers
• Herramienta madura
Infraestructura (EC2)
• 1 Selenium Hub
• 3 Selenium Grid (15 firefox)
• 1 BrowserMob Proxy
• 3 BigCouch
• 1 Rabbit MQ
• 1 Scrapers
Selenium with Python
find_element_by...
• _id / _name
• _tag_name
• _link_text / _partial_link_text
• _class_name
• _css_selector
• _xpath
Navegación
• get("http://dlabs.co/")
• anchor_element.click()
• switch_to_window("name")
• switch_to_frame("name")
• add_cookie({"key": "value"})
• get_cookies()
Interacción
• input.send_keys("some text")
• input.clear()
• option.click()
• submit.click()
• execute_script(“alert(‘foo’)”)
https://gist.github.com/danilat/
6341150
Gracias

More Related Content

What's hot (9)

Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopies
 
Stack mean
Stack meanStack mean
Stack mean
 
Descifrando Ruby on Rails
Descifrando Ruby on RailsDescifrando Ruby on Rails
Descifrando Ruby on Rails
 
Aplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRAplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalR
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Html5 Java Script Apis
Html5 Java Script ApisHtml5 Java Script Apis
Html5 Java Script Apis
 
Html5 avanzado
Html5 avanzadoHtml5 avanzado
Html5 avanzado
 
Django
DjangoDjango
Django
 
Git nivel samurai
Git nivel samuraiGit nivel samurai
Git nivel samurai
 

Similar to Selenium como herramienta de Web Scraping

Civir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicioCivir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicioElasticsearch
 
azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarloscarlos_eduardo_84
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresGermán Küber
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en AzureGermán Küber
 
Conociendo Griffon a Fondo
Conociendo Griffon a FondoConociendo Griffon a Fondo
Conociendo Griffon a FondoAndres Almiray
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
Hack & beers lleida seguridad en desarrollo fullstack
Hack & beers lleida   seguridad en desarrollo fullstackHack & beers lleida   seguridad en desarrollo fullstack
Hack & beers lleida seguridad en desarrollo fullstackMarc Pàmpols
 
Testing con selenium
Testing con seleniumTesting con selenium
Testing con seleniummarianoshin
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Antonio Ognio
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 

Similar to Selenium como herramienta de Web Scraping (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Civir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicioCivir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicio
 
OWASP Top 10 101 en Java EE
OWASP Top 10 101 en Java EEOWASP Top 10 101 en Java EE
OWASP Top 10 101 en Java EE
 
azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlos
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para Desarrolaldores
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
 
Conociendo Griffon a Fondo
Conociendo Griffon a FondoConociendo Griffon a Fondo
Conociendo Griffon a Fondo
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Code Igniter
Code IgniterCode Igniter
Code Igniter
 
Frameworks JAVA EE 5 de marzo de 2.012
Frameworks JAVA EE 5 de marzo de 2.012Frameworks JAVA EE 5 de marzo de 2.012
Frameworks JAVA EE 5 de marzo de 2.012
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
Hack & beers lleida seguridad en desarrollo fullstack
Hack & beers lleida   seguridad en desarrollo fullstackHack & beers lleida   seguridad en desarrollo fullstack
Hack & beers lleida seguridad en desarrollo fullstack
 
Exposicion
ExposicionExposicion
Exposicion
 
Testing con selenium
Testing con seleniumTesting con selenium
Testing con selenium
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Codemotion cacheandolanube
Codemotion cacheandolanubeCodemotion cacheandolanube
Codemotion cacheandolanube
 
Ajax
AjaxAjax
Ajax
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 

More from Dani Latorre

5 aniversario de Agile-Aragón
5 aniversario de Agile-Aragón5 aniversario de Agile-Aragón
5 aniversario de Agile-AragónDani Latorre
 
Vinalab, de visitas a clientes
Vinalab, de visitas a clientesVinalab, de visitas a clientes
Vinalab, de visitas a clientesDani Latorre
 
Cocina tu idea, crea tu producto
Cocina tu idea, crea tu productoCocina tu idea, crea tu producto
Cocina tu idea, crea tu productoDani Latorre
 
Testing en proyectos Grails del día a día. Greach 2013
Testing en proyectos Grails del día a día. Greach 2013Testing en proyectos Grails del día a día. Greach 2013
Testing en proyectos Grails del día a día. Greach 2013Dani Latorre
 
Agile Manifesto - EINA
Agile Manifesto - EINAAgile Manifesto - EINA
Agile Manifesto - EINADani Latorre
 
Como se hizo elDisparate.de
Como se hizo elDisparate.deComo se hizo elDisparate.de
Como se hizo elDisparate.deDani Latorre
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Optimiza tus webs Grails. Greach 2011
Optimiza tus webs Grails. Greach 2011Optimiza tus webs Grails. Greach 2011
Optimiza tus webs Grails. Greach 2011Dani Latorre
 
Opendata - TheEvnt 2011
Opendata - TheEvnt 2011Opendata - TheEvnt 2011
Opendata - TheEvnt 2011Dani Latorre
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Dani Latorre
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008Dani Latorre
 

More from Dani Latorre (14)

5 aniversario de Agile-Aragón
5 aniversario de Agile-Aragón5 aniversario de Agile-Aragón
5 aniversario de Agile-Aragón
 
Vinalab, de visitas a clientes
Vinalab, de visitas a clientesVinalab, de visitas a clientes
Vinalab, de visitas a clientes
 
Cocina tu idea, crea tu producto
Cocina tu idea, crea tu productoCocina tu idea, crea tu producto
Cocina tu idea, crea tu producto
 
Testing en proyectos Grails del día a día. Greach 2013
Testing en proyectos Grails del día a día. Greach 2013Testing en proyectos Grails del día a día. Greach 2013
Testing en proyectos Grails del día a día. Greach 2013
 
Agile Manifesto - EINA
Agile Manifesto - EINAAgile Manifesto - EINA
Agile Manifesto - EINA
 
Agile Manifesto
Agile ManifestoAgile Manifesto
Agile Manifesto
 
Como se hizo elDisparate.de
Como se hizo elDisparate.deComo se hizo elDisparate.de
Como se hizo elDisparate.de
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
Optimiza tus webs Grails. Greach 2011
Optimiza tus webs Grails. Greach 2011Optimiza tus webs Grails. Greach 2011
Optimiza tus webs Grails. Greach 2011
 
Opendata - TheEvnt 2011
Opendata - TheEvnt 2011Opendata - TheEvnt 2011
Opendata - TheEvnt 2011
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008
 

Recently uploaded

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 

Recently uploaded (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Selenium como herramienta de Web Scraping