Usa Playwright para extraer información de webs modernas que requieren interacciones, JavaScript o clics de un usuario real.
Use Playwright to extract information from modern websites that require interactions, JavaScript, or real user clicks.
Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, APIs externas, portales con login, datos sensibles, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.
This exercise is for learning and testing only. Do not run scripts against real data, production environments, external APIs, login portals, sensitive data, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.
Automatizar una navegación controlada en un portal de prueba, capturar una tabla y exportarla a CSV respetando permisos y términos de uso.
Automate controlled navigation in a test portal, capture a table, and export it to CSV while respecting permissions and terms of use.
| campo | valor |
|---|---|
| portal | https://portal_interno.com/login |
| acción | descargar reporte |
| salida | reporte.csv |
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://portal_interno.com/login")
page.click("button#descargar_reporte")| step | status |
|---|---|
| Open browser | ok |
| Navigate to portal | ok |
| Click report button | ok |
| Export file | ok |
# ==========================================================
# Python Advanced Topic 11
# Extract Data with Login and JavaScript using Playwright
# ==========================================================
# pip install playwright pandas
# playwright install
from playwright.sync_api import sync_playwright
import pandas as pd
# Demo structure only: use only authorized portals and test accounts.
login_url = "https://portal_interno.com/login"
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto(login_url)
# Example selectors. Replace only in authorized test environments.
# page.fill("input#username", "test_user")
# page.fill("input#password", "test_password")
# page.click("button#login")
# Example action after login
# page.click("button#descargar_reporte")
audit_log = pd.DataFrame([
{"step": "open_browser", "status": "ok"},
{"step": "navigate_login", "status": "ok"},
{"step": "manual_or_test_login", "status": "pending_demo"},
{"step": "download_report", "status": "pending_demo"}
])
audit_log.to_csv("playwright_scraping_audit_log.csv", index=False)
print(audit_log)
browser.close()step status 0 open_browser ok 1 navigate_login ok 2 manual_or_test_login pending_demo 3 download_report pending_demo
Playwright ayuda cuando la información no está en el HTML inicial y requiere interacción real, pero debe usarse siempre bajo autorización y control.
Playwright helps when information is not in the initial HTML and requires real interaction, but it must always be used under authorization and control.