PORTALI-BATCH • Setup 24–72h su flusso reale (consigliato)
Relay
Quando non c’è API: automatizziamo login, download/upload e naming. Con retry, tracciamento e report finale.
CodePulse Execution Environment
SCRIPT ENGINE (PYTHON)
from playwright.sync_api import sync_playwright
import logging
import time
def scrape_legacy_portal(credentials, target_year='2025'):
with sync_playwright() as p:
# 1. Avvio Browser invisibile con configurazioni Anti-Fingerprinting
browser = p.chromium.launch(headless=True, args=['--disable-blink-features=AutomationControlled'])
page = browser.new_page()
try:
# 2. Flusso di Login Deterministico
page.goto("https://legacy-portal.b2b.com/auth")
page.fill("input[name='username']", credentials['user'])
page.fill("input[name='password']", credentials['pwd'])
page.click("button#login-submit")
# Aspetta che l'UI vecchia scompaia (Explicit Wait sulla sessione)
page.wait_for_selector("div.dashboard-welcome", timeout=15000)
# 3. Navigazione logica e Paginazione (RPA loops)
page.goto(f"https://legacy-portal.b2b.com/archives/{target_year}")
download_count = 0
while True:
# Estrae tutti i pulsanti di download visibili in questa paginata
rows = page.locator("table#results tbody tr")
for i in range(rows.count()):
# Pattern Intercettazione Download senza interferenze OS
with page.expect_download() as download_info:
rows.nth(i).locator("button.btn-download").click()
download = download_info.value
download.save_as(f"./downloads/{target_year}/file_strutturato_{download_count}.pdf")
download_count += 1
# Loop paginazione: controlla se esiste la pagina successiva
next_btn = page.locator("a.next-page")
if not next_btn.is_visible() or next_btn.is_disabled():
break
next_btn.click()
time.sleep(1.5) # Ritardo pseudo-umano
return f"Successo: Acquisiti {download_count} files."
except Exception as e:
logging.error(f"Crash del bot alla riga. Gestione Exception: {str(e)}")
page.screenshot(path="debug_crash.png")
return "Errore critico. Salvato lo screenshot del server target." FLUSSO DATI IN INGRESSO
URL: vecchio-portale-pa.it/login Account: Admin_Aziendale Obiettivo: Scaricare tutti e 400 i PDF di 'Bandi Chiusi 2025' navigando le 15 pagine della tabella HTML.
MONITOR ATTIVITÀ
Sistema in standby. In attesa del comando di esecuzione...
Il problema
Operazioni ripetitive su portali: click su click, errori, credenziali, pagine lente e file che “spariscono”.
Cosa fa
- Automatizza i passaggi ripetitivi (login, filtri, download/upload) con regole chiare.
- Rinomina e organizza i file in cartelle coerenti (cliente, periodo, commessa).
- Genera report: cosa è stato scaricato/caricato, errori, retry eseguiti e tempi.
Esecuzione
Prima Attività ripetitive e rischi di saltare un passaggio o caricare il file sbagliato.
Dopo Esecuzione tracciata, output ordinato e report che prova cosa è stato fatto.
IO Schema
Input: Credenziali/istruzioni flusso, Elenco pratiche/file (Excel/CSV)
Output: File organizzati, Report esito, Log
Output: File organizzati, Report esito, Log
Pacchetti
Setup
€ 790
Flusso completo su portale reale + tracciamento + gestione errori
- Flusso completo su portale reale
- Tracciamento
- Gestione errori
Business
€ 2.190
2–3 portali + retry/queue + report esiti + 30 gg supporto
- 2–3 portali
- Retry/queue
- Report esiti
- 30 gg supporto
Su misura
da € 4.500
Portali complessi, MFA, orchestrazione, monitoraggio e SLA
- Portali complessi
- MFA
- Orchestrazione
- Monitoraggio
- SLA