Prima o poi, chiunque si occupi di impostare la raccolta automatica di contenuti da fonti esterne si trova di fronte a questo problema: ieri il feed portava articoli senza problemi, mentre oggi la fonte è improvvisamente silenziosa. La prima reazione è di solito panico: "la fonte è rotta, è finita, l'autopilota si è fermato". Nella pratica, in nove casi su dieci non si tratta di un malfunzionamento, ma di una protezione del sito: ha semplicemente rilevato una richiesta automatica invece di un browser umano e ha deciso di non fornire contenuti.
La differenza tra "la fonte è davvero non disponibile" e "la fonte si sta temporaneamente proteggendo dai bot" è fondamentale. Nel secondo caso, il sistema non deve arrendersi dopo il primo fallimento, perché dietro a un blocco può esserci di tutto: da un semplice timeout a un avanzato sistema anti-bot che analizza il comportamento del browser. Noi di Telematic abbiamo progettato la raccolta di contenuti proprio per queste situazioni, e non per un mondo ideale in cui ogni sito fornisce sempre HTML pulito alla prima richiesta.
Di seguito, come funziona internamente e cosa significa per una persona che desidera semplicemente che nel progetto arrivino ogni giorno nuovi materiali, e non errori infiniti nel registro delle esecuzioni.
//Perché le fonti bloccano la raccolta
La maggior parte dei siti, in particolare quelli di notizie e di settore, vive da tempo sotto la pressione dei bot: alcuni rubano contenuti, altri gonfiano il traffico, altri ancora sovraccaricano il server con richieste frequenti. La risposta dell'industria è una protezione multilivello: da semplici limiti di richieste da un singolo IP a controlli complessi che analizzano se il "visitatore" si comporta come un vero browser: esegue JavaScript, muove il cursore, carica font e immagini nell'ordine corretto.
Per un sistema di raccolta automatica, questo significa che non si può fare affidamento su un solo metodo di ottenimento della pagina. Ciò che ha funzionato ieri potrebbe essere bloccato domani, non perché la fonte sia chiusa, ma perché la protezione è diventata più severa, o il sistema ha rilevato un modello di richieste e lo ha temporaneamente contrassegnato come sospetto.
//Tre livelli di ottenimento della pagina
Ecco perché la raccolta di contenuti in Telematic non si ferma dopo il primo fallimento, ma passa attraverso diversi livelli di ottenimento della pagina, prima di considerare la fonte veramente non disponibile:
- Richiesta semplice. Il modo più veloce ed economico è l'accesso diretto alla pagina senza emulare un browser. Adatto per la maggior parte dei siti aperti e dei feed RSS, dove non c'è alcuna protezione.
- Emulazione del browser. Se la richiesta semplice viene bloccata o restituisce una pagina vuota/censurata, entra in gioco un motore di rendering del browser completo, che esegue JavaScript, carica contenuti dinamici e si comporta come un vero visitatore.
- Evasione avanzata della protezione. Per le fonti con la protezione anti-bot più aggressiva, viene applicato un livello più profondo, che imita l'impronta di rete e comportamentale di un cliente normale, fino a come appare l'handshake di rete della richiesta.
Solo se il materiale non può essere ottenuto a nessuno di questi livelli, la fonte viene contrassegnata come temporaneamente non disponibile, e non come "rotta per sempre". Questo è fondamentale: un guasto sporadico della rete o un blocco temporaneo non devono annullare una fonte che ha funzionato correttamente per mesi.
//Cosa succede al materiale che è comunque stato raccolto
Ottenere la pagina è solo metà del lavoro. Successivamente entra in gioco il filtro tematico dei contenuti: se nel progetto è impostato un tema, il sistema a livello di progetto filtra i materiali che formalmente provengono dalla fonte, ma non sono pertinenti — ad esempio, un feed di settore che pubblica improvvisamente un comunicato stampa pubblicitario o un materiale non pertinente al tema del canale. Questo avviene ancora prima che il contenuto venga sottoposto a un costoso processo di elaborazione da parte dell'IA, risparmiando sia token che l'attenzione dell'operatore, che altrimenti avrebbe dovuto gestire bozze "fuori tema".
Ciò che supera il filtro viene ulteriormente verificato secondo i soglie di auto-analisi: il sistema decide autonomamente quali materiali soddisfano sufficientemente i criteri del progetto per proseguire automaticamente lungo la catena di montaggio, e quali rimangono come bozze per una verifica manuale. Non si tratta di un interruttore binario "fidarsi della fonte o no", ma di un confine di fiducia configurabile, che consente di automatizzare i casi ovvi e lasciare all'operatore la decisione in quelli controversi.
//La nostra esperienza: quando la fonte "è caduta" non per nostra colpa
Abbiamo avuto un caso esemplare durante i test: uno dei siti di settore, che forniva stabilmente materiale per diverse settimane, ha improvvisamente smesso di restituire qualsiasi cosa, tranne un avviso con CAPTCHA. La prima reazione è stata quella di considerare la fonte morta e rimuoverla dal progetto. Ma durante il controllo è emerso che il sito aveva semplicemente attivato una protezione più severa dopo un'ondata di scraping di massa da parte di alcuni servizi terzi — tutti coloro che accedevano al sito automaticamente, compresi noi, ne hanno risentito.
È stato proprio l'approccio multilivello a salvare la situazione: la richiesta semplice ha smesso di funzionare, ma l'emulazione del browser continuava a ottenere la pagina normalmente, perché la protezione colpiva prima di tutto le richieste più primitive senza segni di un vero browser. Se il sistema si fosse arreso al primo livello, la fonte sarebbe stata ingiustamente classificata come "non disponibile" — mentre il materiale continuava a essere raccolto senza problemi.
Può anche verificarsi l'opposto: la fonte a un certo punto attiva una protezione così severa che nessun livello riesce a passare. In tali casi, il sistema registra onestamente la fonte come non disponibile, invece di "bussare" incessantemente a una porta chiusa e sprecare risorse. Anche questa è una scelta consapevole: è meglio mostrare chiaramente nel registro delle esecuzioni che la fonte richiede attenzione, piuttosto che mascherare il problema con ripetizioni silenziose infinite.
//Cosa significa per il proprietario del progetto
La conclusione pratica è semplice: se nel registro delle esecuzioni della fonte vedete un singolo guasto oggi, non è ancora motivo di panico e di trasferire l'intero feed a un altro servizio o di ricontrollare manualmente le impostazioni. Il sistema ha già percorso il cammino dalla richiesta semplice all'evasione avanzata, prima di segnalare un problema — cioè, al momento in cui vedete l'errore, vale davvero la pena prestare maggiore attenzione alla fonte.
È importante impostare il filtro tematico il più precisamente possibile fin dall'inizio — questo non solo risparmia tempo nella moderazione manuale, ma anche token che altrimenti verrebbero spesi per elaborare materiali non pertinenti. E le soglie di auto-analisi è meglio impostarle inizialmente in modo conservativo e allentare gradualmente man mano che vedete che i contenuti accettati automaticamente corrispondono davvero alle aspettative — in questo modo l'autopilota guadagna fiducia gradualmente, e non con un brusco cambiamento.
In definitiva, l'obiettivo di questo meccanismo è sollevare l'operatore dal carico di routine di "verificare se la fonte è ancora attiva", lasciandogli solo decisioni di contenuto: se il materiale merita di essere pubblicato, se il tono è appropriato, se è necessaria una modifica manuale. Tutto ciò che riguarda l'accessibilità tecnica del sito, il sistema cerca di risolverlo da solo, prima di disturbare il proprietario del progetto.


