Guida

Estrarre dati da siti pubblici protetti da Cloudflare (in modo conforme)

Apri un catalogo pubblico o una pagina di annunci nel browser e i dati sono lì. Il tuo script scarica lo stesso URL e riceve una pagina vuota. La conclusione abituale — “è bloccato da un CAPTCHA” — è spesso sbagliata. Più spesso si tratta di un controllo tecnico dell'impronta che avviene prima del rendering della pagina. Ecco cosa succede davvero, e come leggere quelle pagine pubbliche in modo conforme.

La “pagina vuota” di solito non è un CAPTCHA

Quando un sito protetto da Cloudflare restituisce a uno script una pagina vuota o quasi, ma al tuo browser la pagina completa, la causa più comune è un controllo dell'impronta TLS. Prima che qualsiasi contenuto venga renderizzato, il server esamina la firma tecnica del client che si connette — la forma dell'handshake TLS, l'ordine degli header, i parametri negoziati. Un browser vero presenta una certa firma; una libreria di scripting standard ne presenta una nettamente diversa. Se la firma non somiglia a quella di un normale browser, il server taglia corto e non serve nulla di utile.

Il punto importante: tutto questo avviene a livello di connessione, prima di qualsiasi verifica rivolta all'utente. Non c'è nessun enigma da risolvere, nessuna casella “sei un robot?”. La pagina, semplicemente, non è mai stata renderizzata per quel client. Ecco perché si vedono “pagine vuote” e si pensa, a torto, a un CAPTCHA — il meccanismo reale è un handshake che non corrisponde a quello che un browser invierebbe.

Cosa non è: non è un muro di login, non sono dati personali e non è qualcosa da forzare. È un controllo di forma su come appare la connessione di un normale visitatore. La soluzione è far sì che una richiesta legittima sembri legittima quanto lo è davvero — una sessione browser reale che legge una pagina pubblica.

Come una sessione con l'impronta corretta legge la pagina pubblica

L'approccio conforme è semplice: connettersi con una sessione browser reale, con l'impronta corretta, così che la pagina pubblica si carichi come per qualsiasi altro visitatore — e farlo a un ritmo rispettoso.

  • Una sessione browser autentica. Usa un motore browser reale, con handshake TLS e header identici a quelli che il sito si aspetta già dai visitatori di tutti i giorni, così la pagina pubblica viene renderizzata come previsto.
  • Il ritmo di un solo visitatore. Leggi le pagine a un ritmo umano, senza fretta — richieste distanziate, crawl-delay rispettato — invece di inondare la fonte. Un'impronta rispettosa mantiene l'accesso stabile, ed è semplicemente la cosa giusta da fare.
  • Solo pagine pubbliche. Leggi ciò che qualsiasi visitatore può vedere senza login. Niente contenuti riservati, niente dati personali — solo i campi pubblici e fattuali che cercavi.
  • API nascosta, quando esiste. Una volta che la sessione viene renderizzata correttamente, la pagina può esporre lo stesso endpoint JSON interno che descrivo in che cos'è una API nascosta — di solito il modo più pulito e leggero di leggere i dati.

Tengo una dimostrazione open source del concetto di fingerprinting: vedi il repository tls-fingerprint-scraper-demo, che mostra perché un client standard riceve una pagina vuota dove una sessione con l'impronta corretta legge normalmente il contenuto pubblico.

Restare dalla parte giusta della linea

Leggere dati pubblici in modo affidabile e farlo in modo responsabile sono lo stesso lavoro. Le mie regole non si piegano:

  • Leggo e rispetto i Termini di servizio del sito. Se i termini vietano l'accesso automatizzato, non procedo.
  • Rispetto robots.txt e i limiti di frequenza — sempre, per scelta progettuale.
  • Accedo solo a dati pubblici, fattuali e senza PII. Niente contenuti dietro login, niente informazioni personali.
  • Tu gestisci e possiedi il feed risultante; io lo costruisco perché si comporti come un visitatore cortese della fonte.
Inquadro questo lavoro come affidabilità sui dati pubblici — far sì che una richiesta legittima venga renderizzata come dovrebbe — mai come l'aggiramento di una protezione. Questa distinzione è tutto il punto, ed è il motivo per cui una PMI può fidarsi del risultato.

In breve

Le pagine vuote da un sito pubblico protetto da Cloudflare sono di solito un controllo dell'impronta TLS, non un CAPTCHA. Una sessione browser con l'impronta corretta legge la pagina pubblica come qualsiasi normale visitatore, a un ritmo rispettoso, nel rispetto dei termini del sito. È così che “funziona nel mio browser ma non nel mio script” diventa un feed su cui contare.

Ricevi pagine vuote da un sito pubblico?

Inviami l'URL pubblico e i campi che ti servono. Verifico gratuitamente se un feed conforme, con l'impronta corretta, è fattibile.

Richiedi uno studio di fattibilità gratuito