Pular para o conteudo
MODULO 5.2

⚡ Automacao de Scripts

Web scraping, processamento de arquivos em massa, transformacao de dados e agendamento com cron. Scripts que trabalham enquanto voce dorme.

6
Topicos
~45
Minutos
5.1
Pre-requisito
Pratico
Tipo
Progresso: 0% 0 de 6
1

🌐 Web scraping com requests+bs4

O combo requests + BeautifulSoup e o padrao Python para extrair dados de paginas web. Peca ao Claude Code: "scrape os titulos e precos desta pagina" e ele gera o script completo com selectors CSS, tratamento de erros e rate limiting.

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

Em 1 frase: requests + BeautifulSoup = dados da web em poucas linhas.

2

📁 File processing em massa

Renomear 500 arquivos, converter formatos em lote, extrair metadados. Com pathlib e shutil, Python processa centenas de arquivos no tempo que voce levaria para fazer 5 manualmente. Claude Code gera esses scripts sob 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}")

Em 1 frase: pathlib + glob = processar centenas de arquivos num loop.

3

🔄 Data transforms (CSV/JSON)

Converter CSV para JSON, filtrar linhas, agregar dados. Os modulos csv e json da stdlib resolvem 90% dos casos. Para transformacoes mais complexas, pandas e o canivete suico.

Em 1 frase: csv.DictReader + json.dump = pipeline de dados em Python puro.

4

⏰ Scheduling com cron

Automacao real significa rodar sem intervencao. O cron (Linux/macOS) agenda scripts para rodar em horarios fixos. Para tarefas mais complexas, systemd timers oferecem logging e retry automaticos.

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

Em 1 frase: cron = seu script rodando sozinho no horario certo, todo dia.

5

🔌 APIs de terceiros

Scripts poderosos conectam servicos: GitHub API para repos, Slack para notificacoes, Stripe para pagamentos. Com requests e headers de autenticacao, voce integra qualquer API REST. Claude Code conhece os endpoints de APIs populares e gera o codigo de integracao.

Em 1 frase: requests + auth headers = integracao com qualquer servico.

6

🛡️ Error handling robusto

Scripts de producao precisam de try/except bem pensado, logging estruturado e retries para falhas transientes. A biblioteca tenacity simplifica retries com backoff exponencial. Peca ao 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()

Em 1 frase: try/except + logging + retries = scripts que nao morrem em silencio.

🧾 Resumo do Modulo

Web scraping com requests + BeautifulSoup.
File processing em massa com pathlib e glob.
Data transforms entre CSV, JSON e mais.
Scheduling com cron para automacao temporal.
APIs de terceiros integradas via requests.
Error handling com logging, retries e exit codes.

Proximo modulo:

5.3 — FastAPI e Web Services: de script a API profissional.