Le migliori pratiche per i web crawler etici - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le migliori pratiche per i web crawler etici

Questa sezione illustra le migliori pratiche e le principali considerazioni etiche per la creazione di un'applicazione di scansione del Web che raccolga dati ambientali, sociali e di governance (ESG). Aderendo a queste best practice, puoi proteggere il tuo progetto e la tua organizzazione e contribuire a un ecosistema web più responsabile e sostenibile. Questo approccio consente di accedere a dati preziosi e utilizzarli per la ricerca, il business e l'innovazione nel rispetto di tutte le parti interessate.

Conformità a Robots.txt

Il file robots.txt viene utilizzato sui siti Web per comunicare con web crawler e bot su quali parti del sito Web devono o non devono essere consultate o sottoposte a scansione. Quando un web crawler rileva un file robots.txt su un sito Web, analizza le istruzioni e regola di conseguenza il suo comportamento di scansione. Ciò impedisce al crawler di violare le istruzioni del proprietario del sito Web e mantiene un rapporto di collaborazione tra il sito Web e il crawler. Pertanto, il file robots.txt aiuta con il controllo degli accessi, la protezione dei contenuti sensibili, la gestione del carico e la conformità legale.

Consigliamo di seguire queste best practices:

  • Controlla e rispetta sempre le regole del file robots.txt.

  • Prima di eseguire la scansione di qualsiasi URL, controlla le regole per gli user agent desktop e mobili.

  • Se il sito Web consente solo agenti utente per dispositivi mobili, utilizza un'intestazione agente diversa, ad esempio un'intestazione agente mobile, per la richiesta.

L'assenza di un file robots.txt non significa necessariamente che non si possa o non si debba eseguire la scansione di un sito Web. La scansione deve essere sempre eseguita in modo responsabile, rispettando le risorse del sito Web e i diritti impliciti del proprietario. Le seguenti sono le migliori pratiche consigliate quando non è presente un file robots.txt:

  • Supponiamo che la scansione per indicizzazione sia consentita, ma procedi con cautela.

  • Implementa pratiche di crawling educate.

  • Valuta la possibilità di contattare il proprietario del sito web per ottenere l'autorizzazione se prevedi di eseguire una scansione approfondita.

Limitazione della frequenza di scansione

Utilizza una frequenza di scansione ragionevole per evitare di sovraccaricare il server. Implementa i ritardi tra le richieste, come specificato dal file robots.txt o utilizzando un ritardo casuale. Per i siti Web di piccole o medie dimensioni, potrebbe essere appropriata 1 richiesta ogni 10-15 secondi. Per i siti Web di grandi dimensioni o quelli con autorizzazioni di scansione esplicite, potrebbero essere appropriate 1-2 richieste al secondo.

Trasparenza tra utenti e agenti

Identifica il tuo crawler nell'intestazione user-agent. Queste informazioni di intestazione HTTP hanno lo scopo di identificare il dispositivo che richiede il contenuto. In genere, la parola bot è inclusa nel nome dell'agente. I crawler e altri bot a volte utilizzano un campo importante nell'intestazione per includere le informazioni di contatto.

Scansione efficiente

Utilizza la mappa del sito, sviluppata dal proprietario del sito web, per concentrarti sulle pagine importanti.

Approccio adattivo

Programma il crawler per passare a uno user agent mobile se la versione desktop non funziona correttamente. Ciò può fornire al crawler l'accesso e ridurre il carico sul server del sito web.

Gestione degli errori

Assicurati che il crawler gestisca i vari codici di stato HTTP in modo appropriato. Ad esempio, il crawler dovrebbe mettersi in pausa se rileva un codice di stato 429 («Troppe richieste»). Se il crawler riceve continuamente 403 codici di stato («Proibito»), valuta la possibilità di interrompere la scansione.

Strisciamento in batch

Ti consigliamo anche di completare le seguenti operazioni:

  • Invece di eseguire l'operazione tutti in una volta, suddividete l'operazione URLs in batch più piccoli. In questo modo è possibile distribuire il carico e ridurre il rischio di problemi, come timeout o limitazioni delle risorse.

  • Se si prevede che l'attività di indicizzazione complessiva duri a lungo, è consigliabile suddividerla in più attività più piccole e più gestibili. Ciò può rendere il processo più scalabile e resiliente.

  • Se il numero di elementi da sottoporre URLs a scansione è relativamente ridotto, prendi in considerazione l'utilizzo di una soluzione serverless, ad esempio. AWS Lambda Le funzioni Lambda possono essere ideali per attività di breve durata e basate su eventi, perché scalano e gestiscono automaticamente la gestione delle risorse.

Sicurezza

Per le attività di elaborazione di scansione del Web, ti consigliamo di configurare l'ambiente in modo da consentire solo il traffico in uscita. Questo aiuta a migliorare la sicurezza riducendo al minimo la superficie di attacco e riducendo il rischio di accessi non autorizzati in entrata. Consentire solo le connessioni in uscita consente al processo di scansione di comunicare con i siti Web di destinazione e recuperare i dati necessari, oltre a limitare il traffico in entrata che potrebbe potenzialmente compromettere il sistema.

Altre considerazioni

Consulta le seguenti considerazioni e procedure consigliate aggiuntive:

  • Consulta le linee guida per la scansione nei termini di servizio o nell'informativa sulla privacy del sito web.

  • Cerca nell'HTML i meta tag che potrebbero fornire direttive di scansione.

  • Sii consapevole delle restrizioni legali nella tua giurisdizione relative alla raccolta e all'uso dei dati.

  • Preparati a interrompere la scansione se richiesto dal proprietario del sito web.