La nascita di un bot per la scansione del Web: PromptCloud

Pubblicato: 2019-02-27
Mostra il sommario
Fase 1. Capire come il sito reagisce agli utenti umani
Fase 2. Capire come si comporta il sito con un bot
Fase 3. Costruire il bot
Fase 4. Mettere alla prova il bot
Fase 5. Estrazione di punti dati ed elaborazione dati

I bot per la scansione del Web sono da tempo una componente fondamentale del successo delle aziende. E-commerce, viaggi, lavori e annunci sono alcuni dei principali domini che utilizzano i robot crawler al centro della loro strategia competitiva.

Quindi cosa fanno effettivamente i bot per la scansione del Web? Per la maggior parte, attraversano centinaia di migliaia di pagine di un sito Web, recuperando importanti bit di informazioni a seconda del suo esatto scopo sul Web. Alcuni bot sono progettati per recuperare i dati sui prezzi dai portali di e-commerce, mentre altri estraggono le recensioni dei clienti dalle agenzie di viaggio online. E poi ci sono bot progettati per raccogliere contenuti generati dagli utenti per assistere gli ingegneri dell'IA nella creazione di corpora di testo per l'elaborazione del linguaggio naturale.

In tutti questi casi d'uso, un bot per la scansione del Web deve essere creato da zero per un sito Web di destinazione, in base ai punti dati che deve estrarre da quel sito. In PromptCloud, abbiamo creato bot di varia complessità, per una vasta gamma di settori e casi d'uso. Con i nostri anni di esperienza nel web crawling, abbiamo formulato un processo passo dopo passo che rende la creazione del bot più semplice e snella. Esaminiamo rapidamente i passaggi coinvolti nella creazione di un bot di scansione web.

Fase 1. Capire come il sito reagisce agli utenti umani

Prima di poter costruire un bot per eseguire la scansione di un nuovo sito Web, dovremmo sapere come il sito interagisce con un vero essere umano. A questo punto, i nostri ingegneri fanno un giro del nuovo sito web di destinazione per farsi un'idea sulla navigazione del sito utilizzando un normale browser come Google Chrome o Mozilla Firefox. Questo fa luce sull'interazione browser-server che rivela come il server vede ed elabora una richiesta in arrivo. In genere, si tratta di giocare con le intestazioni e i tipi di richiesta tramite http. Ciò pone le basi per la creazione del bot poiché il bot in un certo senso imiterebbe un utente reale sul sito Web di destinazione.

Fase 2. Capire come si comporta il sito con un bot

Come parte del secondo passaggio, i nostri ingegneri invieranno del traffico di prova in modo automatizzato per capire in che modo il sito interagisce in modo diverso con un bot rispetto a un utente umano. Ciò è necessario poiché la maggior parte dei siti Web moderni dispone di alcuni meccanismi integrati per gestire i bot in modo diverso. Comprendere questi meccanismi ci aiuterebbe a scegliere il miglior percorso d'azione per costruire il bot. Alcuni esempi comuni sono:

  • Il sito limita la normale navigazione dopo, diciamo, 20 pagine
  • La richiesta restituisce un codice di stato 301
  • Il sito lancia un captcha in risposta
  • Il server restituisce un codice di stato 403: ciò significa che il sito si rifiuta di soddisfare la nostra richiesta nonostante la capisca
  • Accesso limitato da una determinata area geografica (è qui che entrano in gioco i proxy)

La maggior parte dei siti Web ha una doppia faccia, tratta gli utenti umani e i robot in modo diverso: a loro difesa, li protegge dai robot dannosi e da varie forme di attacchi informatici. A un certo punto potresti esserti imbattuto in un sito Web che ti chiede di dimostrare la tua umanità per accedere a una determinata pagina o funzione. I bot lo affrontano molto. Questo è il motivo per cui eseguiamo questo test per comprendere completamente il sito dal punto di vista di un bot.

Abbiamo anche un livello automatizzato che viene quindi utilizzato per identificare l'approccio migliore per la creazione del bot per eseguire la scansione di un determinato sito Web. Esegue un leggero stress test sul sito per rilevare i suoi punti di non ritorno e quindi restituisce alcune informazioni cruciali che contribuiscono alla creazione del bot crawler come Sleep, Proxy/No proxy, Captcha, Numero di possibili richieste parallele e altro ancora.

Fase 3. Costruire il bot

Una volta che i nostri ingegneri hanno ottenuto un progetto chiaro del sito di destinazione, è il momento di iniziare a creare il bot crawler. La complessità della build dipenderà dai risultati dei nostri test precedenti. Ad esempio, se il sito di destinazione è accessibile solo dalla, diciamo, Germania, dovremo includere un proxy tedesco per recuperare il sito. Allo stesso modo, a seconda delle esigenze specifiche del sito, possono esserci fino a 10 moduli che lavorano insieme in un bot.

Fase 4. Mettere alla prova il bot

Essendo un fornitore di servizi di scraping web di livello aziendale, diamo la massima priorità all'affidabilità e alla qualità dei dati. Per garantire ciò, è importante testare il bot crawler in condizioni diverse, all'interno e all'esterno dell'ora di punta del sito di destinazione prima che possano iniziare le scansioni effettive. Per questo test, proviamo a recuperare un numero casuale di pagine dal sito live. Dopo aver misurato il risultato, verranno apportate ulteriori modifiche al cingolato per migliorarne la stabilità e la scala di funzionamento. Se tutto funziona come previsto, il bot può entrare in produzione.

Fase 5. Estrazione di punti dati ed elaborazione dati

I nostri crawler bot funzionano in modo diverso dai crawler dei motori di ricerca con cui la maggior parte delle persone ha familiarità. Mentre i bot dei motori di ricerca come Google bot eseguirebbero semplicemente la scansione delle pagine Web e le aggiungerebbero al loro indice con alcuni metadati, i nostri bot recuperano l'intero contenuto html delle pagine in uno spazio di archiviazione temporaneo dove subiscono l'estrazione e vari altri processi a seconda di requisiti del cliente.

Chiamiamo questa fase Estrazione ed è qui che i punti dati richiesti vengono estratti dalle pagine Web pre-scaricate. Una volta estratti, i dati vengono automaticamente scansionati alla ricerca di voci duplicate e deduplicati. Il prossimo processo in linea è la normalizzazione in cui vengono apportate alcune modifiche ai dati per facilitare il consumo. Ad esempio, se i dati sui prezzi estratti sono in dollari, possono essere convertiti in una valuta diversa prima di essere consegnati al cliente.

Questa è stata una rapida panoramica di come i nostri ingegneri si avvicinano a una nuova build di bot per la scansione del Web. Si noti che l'elevata efficienza dei bot dipende anche dall'ambiente del server e dal livello di ottimizzazione che abbiamo raggiunto negli anni. Uno stack tecnologico e un'infrastruttura stabili sono essenziali per estrarre milioni di record di dati su base giornaliera, senza che ci siano due robot uguali.