2026 VENTA -50%11h:31metro:16s
Acceso

Como usar Selenium y Python para web scraping

Última actualización: 23 de junio de 2026

Recopilar datos de sitios web, comúnmente conocido como web scraping, es una técnica práctica para muchos proyectos. Bibliotecas como BeautifulSoup son excelentes para trabajar con HTML básico; sin embargo, a menudo tienen dificultades cuando las páginas dependen en gran medida de JavaScript para mostrar contenido. Ahí es donde entra Selenium para resolverlo.

En esta guía, aprenderás cómo usar Selenium con Python para extraer datos de sitios web de forma efectiva.

Lo primero: ¿qué es Selenium?

Selenium es un framework de automatización de navegadores diseñado para probar aplicaciones web. Simula el comportamiento real del usuario controlando un navegador real como Chrome o Firefox. Gracias a esto, puede manejar contenido renderizado con JavaScript que otras herramientas no pueden.

Esto convierte a Selenium en una excelente solución para extraer contenido de sitios web interactivos, formularios, scroll infinito y más.

Cómo instalar Selenium

Para empezar, instala Selenium con pip:

pip install selenium

Cómo configurar un WebDriver

Selenium requiere un WebDriver para comunicarse con el navegador. Aquí tienes un ejemplo sencillo usando Chrome:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service("/path/to/chromedriver")
driver = webdriver.Chrome(service=service)

Si quieres ejecutar el navegador sin abrir una ventana (útil en servidores), activa el modo headless:

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)

Cómo encontrar elementos en la página

Puedes usar distintas estrategias para localizar elementos HTML:

from selenium.webdriver.common.by import By

element = driver.find_element(By.CLASS_NAME, "product-title")

Otras opciones de localizador son:

  • By.ID
  • By.TAG_NAME
  • By.CSS_SELECTOR
  • By.XPATH

Esperar a que JavaScript cargue

En lugar de usar time.sleep(), Selenium admite esperas inteligentes con WebDriverWait:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "content"))
)

Ejecutar JavaScript

Si necesitas desplazarte por la página o activar elementos que cargan mal, puedes ejecutar JavaScript:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

Cómo tomar capturas de pantalla

Captura una captura de pantalla de la vista actual con:

driver.save_screenshot("screenshot.png")

Manejar la paginación

Para extraer datos de varias páginas, puedes recorrer enlaces o interactuar con un botón “Siguiente”:

next_button = driver.find_element(By.LINK_TEXT, "Next")
next_button.click()

Exportar datos

Puedes usar la biblioteca Pandas para guardar los datos extraídos en un archivo CSV:

import pandas as pd

df = pd.DataFrame(data)
df.to_csv("output.csv", index=False)

Desplazarse con teclas

Para simular pulsaciones de teclas como PAGE_DOWN o END:

from selenium.webdriver.common.keys import Keys

body = driver.find_element(By.TAG_NAME, "body")
body.send_keys(Keys.END)

Bloquear imágenes y otros recursos

Para acelerar el scraping y reducir el uso de recursos:

driver.execute_cdp_cmd("Network.setBlockedURLs", {"urls": ["*.jpg", "*.png"]})

¿Cómo se compara Selenium con otras herramientas?

HerramientaSoporte JavaScriptVelocidadCaso de uso ideal
SeleniumCompletoModeradaPáginas interactivas/dinámicas
BeautifulSoupNingunoRápidaScraping de HTML estático
ScrapyOpcional (a través de Selenium)Muy rápidaProyectos de scraping a gran escala
PuppeteerCompleto (solo Node.js)ModeradaScraping basado en Chromium headless

¿Cuándo deberías usar Selenium?

Elige Selenium cuando:

  • El sitio web depende principalmente de JavaScript
  • Necesitas simular interacciones de usuario (clics, scroll e inputs)
  • Estás trabajando en una tarea de scraping a pequeña o mediana escala

Para trabajos de scraping más grandes o más rápidos, considera herramientas como Scrapy, o APIs especializadas que se encargan de los proxies residenciales, CAPTCHA y JavaScript por ti.

Conclusión

Selenium es una opción perfecta para extraer datos de sitios web dinámicos con Python. Tras configurarlo, te permite extraer contenido de páginas complejas. Aunque no es la herramienta más rápida, su capacidad para automatizar un navegador real lo hace increíblemente flexible.

Índice del artículo

¿Listo para probarlo tú mismo?

Comience a usar nuestro producto con solo unos pocos clics.