Scarica il JSON completo di un CIG (Codice Identificativo Gara) dal portale ANAC dettaglio-cig.anticorruzione.it, automatizzando il click sul checkbox anti-spam e sul pulsante "Esporta in JSON".
Il payload ottenuto è molto più ricco di quello visibile a schermo: include 20 sezioni tra cui bando, stazioneAppaltante, partecipanti, incaricati, aggiudicazione, quadroEconomico, subappalti, varianti, categorieOpera, pubblicazioni, ecc.
agent-browser— CLI di automazione browserjq
curl -sSL https://gist.githubusercontent.com/aborruso/183e93419b5d3528af69a6617e97a3f1/raw/cig-fetch.sh -o cig-fetch.sh
chmod +x cig-fetch.sh./cig-fetch.sh <CIG> [output-dir]Esempio:
./cig-fetch.sh B9B28F02D2 /tmp
# → /tmp/B9B28F02D2.jsonSe output-dir è omesso, il file viene salvato nella directory corrente.
- Apre
https://dettaglio-cig.anticorruzione.it/cig/<CIG>conagent-browser. - Attende che il form sia montato e clicca il checkbox anti-spam.
- Installa un hook JavaScript su
URL.createObjectURLper catturare il Blob del download (i download<a download>non arrivano su disco in modalità headless). - Clicca "Cerca" e attende che i dati della gara vengano renderizzati.
- Clicca "Esporta in JSON" e legge il blob catturato da
window.__capturedJSON. - Estrae il JSON vero (il payload è wrappato in
{success, data:{result:"<stringified>"}}) conjq -r '.data.result'. - Valida il JSON e lo salva come
<CIG>.json.
✗ Invalid response: EOF while parsing a value at line 1 column 0
Un daemon agent-browser precedente è rimasto in stato sporco. Risolvi con:
agent-browser closee rilancia lo script.
Errore: JSON non catturato per <CIG>
Il sito potrebbe aver cambiato il markup o l'endpoint. Verifica manualmente su https://dettaglio-cig.anticorruzione.it/cig/<CIG>.
MIT