Automatizacion web con Selenium
Selenium controla un navegador real desde Python. Puede hacer TODO lo que un humano hace: clic, escribir, scroll, esperar, screenshots.
Casos de uso: • Web scraping de sitios con JavaScript • Automatizar formularios (facturacion, reportes) • Testing de aplicaciones web • Monitorear precios y disponibilidad • Llenar aplicaciones de trabajo automaticamente • Screenshot automatizado de reportes
Instalacion: pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
# Setup automatico del driver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
try:
# Navegar
driver.get("https://google.com")
# Esperar que cargue
search = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, "q"))
)
# Escribir y buscar
search.send_keys("Python automation")
search.send_keys(Keys.RETURN)
# Esperar resultados
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "search"))
)
# Obtener resultados
results = driver.find_elements(By.CSS_SELECTOR, "h3")
for i, r in enumerate(results[:5]):
print(f"{i+1}. {r.text}")
# Screenshot
driver.save_screenshot("resultado.png")
finally:
driver.quit()
Selenium en modo headless (sin abrir ventana del navegador):
from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("--headless") options.add_argument("--no-sandbox") driver = webdriver.Chrome(options=options)
Ideal para correr en servidores sin interfaz grafica.
Practica esta lección
Resuelve los ejercicios del curso de Bots & Automatizacion en la app, gratis y con corrección automática.
Empezar a practicar