PTENES
Saltar al contenido
MÓDULO 5.2

⚡ Automatización de scripts

Web scraping, procesamiento masivo de archivos, transformación de datos y programación con cron. Scripts que trabajan mientras duermes.

6
Temas
~45
Minutos
5.1
Requisito previo
Práctico
Tipo
Progreso: 0% 0 de 6
1

🌐 Web scraping con requests+bs4

La combinación requests + BeautifulSoup es el estándar de Python para extraer datos de páginas web. Pídele a Claude Code: "scrape os titulos e precos desta pagina" y genera el script completo con selectores CSS, manejo de errores y limitación de solicitudes.

scraper.py
import requests
from bs4 import BeautifulSoup
import time

def scrape_titles(url: str) -> list[str]:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    soup = BeautifulSoup(resp.text, "html.parser")
    return [h.text.strip() for h in soup.select("h2.title")]

urls = ["https://example.com/page/1", "https://example.com/page/2"]
for url in urls:
    print(scrape_titles(url))
    time.sleep(1)  # rate limiting

En 1 frase: requests + BeautifulSoup = datos de la web en pocas líneas.

2

📁 Procesamiento masivo de archivos

Renombrar 500 archivos, convertir formatos en lote, extraer metadatos. Con pathlib e shutil, Python procesa cientos de archivos en el tiempo que te llevaría hacer 5 manualmente. Claude Code genera estos scripts bajo demanda.

batch_rename.py
from pathlib import Path

src = Path("./downloads")
for i, f in enumerate(sorted(src.glob("*.jpg")), 1):
    new_name = f"photo_{i:04d}{f.suffix}"
    f.rename(f.parent / new_name)
    print(f"  {f.name} -> {new_name}")

En 1 frase: pathlib + glob = procesar cientos de archivos en un bucle.

3

🔄 Transformaciones de datos (CSV/JSON)

Convertir CSV a JSON, filtrar filas, agregar datos. Los módulos csv e json de la biblioteca estándar resuelven el 90% de los casos. Para transformaciones más complejas, pandas es la navaja suiza.

En 1 frase: csv.DictReader + json.dump = pipeline de datos en Python puro.

4

⏰ Programación con cron

La automatización real significa ejecutarse sin intervención. El cron (Linux/macOS) programa scripts para que se ejecuten en horarios fijos. Para tareas más complejas, systemd timers ofrecen logging y reintentos automáticos.

crontab
# Rodar todo dia as 6h
0 6 * * * /home/user/.venv/bin/python /home/user/scripts/scrape.py >> /tmp/scrape.log 2>&1

# Rodar a cada 30 minutos
*/30 * * * * /home/user/.venv/bin/python /home/user/scripts/check.py

En 1 frase: cron = tu script ejecutándose solo a la hora indicada, todos los días.

5

🔌 API de terceros

Los scripts potentes conectan servicios: GitHub API para repositorios, Slack para notificaciones, Stripe para pagos. Con requests y encabezados de autenticación, integras cualquier API REST. Claude Code conoce los endpoints de las API populares y genera el código de integración.

En 1 frase: requests + auth headers = integración con cualquier servicio.

6

🛡️ Manejo robusto de errores

Los scripts de producción necesitan try/except bien pensado, logging estructurado y reintentos para fallas transitorias. La biblioteca tenacity simplifica los reintentos con backoff exponencial. Pídele a Claude Code: "adicione error handling robusto a este script".

robust_script.py
import logging
from tenacity import retry, stop_after_attempt, wait_exponential

logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
log = logging.getLogger(__name__)

@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=1, max=10))
def fetch_data(url: str) -> dict:
    log.info(f"Fetching {url}")
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    return resp.json()

En 1 frase: try/except + logging + retries = scripts que no fallan en silencio.

🧾 Resumen del módulo

✓
Web scraping con requests + BeautifulSoup.
✓
Procesamiento de archivos en masa con pathlib y glob.
✓
Transformaciones de datos entre CSV, JSON y más.
✓
Scheduling con cron para automatización temporal.
✓
APIs de terceros integradas vía requests.
✓
Error handling con logging, retries y exit codes.

Siguiente módulo:

5.3 — FastAPI y servicios web: de script a API profesional.