Web Scraping con Ruby – Tutorial

Pubblicato: 2017-08-24

Il notevole aumento e la crescita esponenziale dei dati web hanno aperto nuove strade per vari settori. Fin dalle unità produttive ai settori dei servizi, i dati sono una componente essenziale adottata dalle aziende di tutto il mondo per rimanere al passo con i tempi in evoluzione. I dati Web non solo contengono una miniera d'oro di informazioni sulla concorrenza e sul mercato, ma offrono anche approfondimenti che possono essere utilizzati per migliorare i processi e le operazioni interne.

Il web scraping consente di estrarre dati online mirati per un ulteriore utilizzo da parte del motore di analisi o dello strumento BI. L'obiettivo del web scraping rimane vario -

  • L'estrazione dei dati è un modo efficace per pubblicizzare la tua attività e promuovere prodotti/servizi
  • Utenti, consumatori e visitatori web possono ottenere le informazioni desiderate su un servizio o prodotto.
  • Le aziende possono acquisire informazioni sulla concorrenza sulle strategie e sui piani in atto per aumentare la rispettiva quota di mercato.
  • I marchi possono conoscere la percezione generale intorno al proprio marchio attraverso le interazioni sui social media tra le persone. Ciò aiuta i team di marketing a ideare e distribuire messaggi di marketing pertinenti destinati specificamente alla persona di questo pubblico, aumentando così la probabilità di conversione.
  • Le aziende possono ottenere maggiore chiarezza sulle esigenze, sui punti deboli e sulle preferenze del loro pubblico di destinazione. Possono quindi guidare lo sviluppo del prodotto nella giusta direzione con questa preziosa intelligenza.

Immagina i vantaggi se potessimo strutturare i dati Web, eliminare il rumore ed esportarli in formati leggibili dalla macchina. Vediamo come questo può essere fatto usando Ruby.

Scelta dello script di codifica

L'estrazione dei dati e l'effettiva implementazione delle pratiche di web scraping non è un affare facile. La conoscenza elementare di CSS, HTML e lo script di codifica corretto renderà il tuo viaggio agevole. La tua scelta dello script di codifica giocherà un ruolo cruciale in questo contesto. Scopriamo perché Ruby sta creando un brusio nel mercato.

Se hai intenzione di lanciare il tuo primo programma di web scraping, Ruby può svolgere il ruolo di un linguaggio di scripting affidabile. Molte ragioni sono responsabili della popolarità senza pari di questa lingua, e le seguenti ragioni ti aiuteranno a capire perché è così efficace!

  • Uno script potente : Ruby-On-Rails è uno script molto potente ed efficace per il web scraping. Per i principianti e i neofiti, questa particolare lingua si è rivelata una forte risorsa.
  • Comunità affidabile : Ruby arriva con un forte team di sviluppatori che formano una comunità affidabile e altamente affidabile. Con milioni di documentazioni, nessun problema sarà enorme per te!
  • Installazione semplice : la procedura di installazione è ben documentata e abbastanza facile da seguire.

Questi sono alcuni dei fattori che rendono Ruby un'opzione indispensabile per il web scraping. L'impostazione e l'installazione devono essere eseguite in modo ottimale, poiché questi processi sono fondamentali per l'esecuzione dei processi di estrazione dei dati. Ecco un tutorial completo per aiutarti durante il processo.

La guida passo passo

Prima di iniziare, cerchiamo di essere chiari su alcuni punti. Questo tutorial è rivolto agli utenti Mac, se utilizzi una macchina diversa, il processo di configurazione iniziale potrebbe essere leggermente diverso. In secondo luogo, il programma utilizza Nokogiri, che può trasformare le pagine Web in "oggetti Ruby", semplificando così il processo di scraping del Web. Con questi due fattori in mente, puoi intraprendere i tuoi progetti.

In questa guida, analizzeremo i titoli dei primi 100 annunci su olx per auto usate.

Il processo di installazione

Ecco i requisiti di base per sviluppare una configurazione completa per l'estrazione web utilizzando Ruby.

  • Il tuo computer, desktop o laptop, dovrebbe avere Ruby su di esso. Se sei un fedele Mac, metà del lavoro è fatto.
  • Avrai bisogno di un editor di testo. Ciò è necessario per annotare i comandi del programma. Se il tuo computer non ha un'opzione integrata, prova a scaricare Sublime Text. Con funzionalità interessanti e controlli fantastici, questo editor di testo renderà la codifica eccitante e interessante.
  • Altro requisito è la conoscenza approfondita dell'uso di HTML e CSS. Se hai intenzione di padroneggiare l'arte del web scraping, la conoscenza di CSS e HTML sarà fondamentale.
  • Impara a conoscere Ruby. Un po' di informazioni è essenziale in questo contesto. Puoi dare un'occhiata ad alcuni dei corsi online e migliorare la tua base di conoscenze. Con questi processi e fattori in atto, sarà il momento di iniziare i passaggi cruciali.

Passaggio 1: installazione delle dipendenze

Durante il processo di installazione, assicurati di ottenere informazioni complete sulle tre utili Gemme Rubino. Queste tre opzioni includono:

  • Noko Giri
  • HTTPart
  • Fare leva

Dato che abbiamo già spiegato un po' di Nokogiri, parliamo di HTTParty e Pry. HTTParty è una gemma che il nostro web scraper utilizzerà per inviare richieste HTTP alle pagine che stiamo eseguendo lo scraping. Useremo HTTParty per inviare richieste GET, che restituiranno tutto il contenuto HTML della pagina come stringa. Per il debug, utilizziamo Pry, che è una gemma di rubino. Ci aiuterà ad analizzare il codice della pagina web ed è un componente essenziale in questa configurazione.

Segui i comandi seguenti ed eseguili sul tuo computer per installare queste gemme sul tuo computer.

gemma installa nokogiri

festa di installazione di gemme

gemma installa leva

Passaggio 2: la creazione di file raschiatori

Dovrai creare una cartella denominata nokogiri_tutorial in una delle posizioni preferite sul tuo computer. Il desktop è il luogo perfetto per farlo. Il passaggio successivo consiste nel scaricare un editor di testo come 'Testo sublime' o qualsiasi altra opzione a tua scelta e salvare il file in questa cartella denominata "web_scraper.RB". Una volta completati questi passaggi, sei a posto per lavorare sulle dipendenze.

Passaggio 3: invio di richieste HTTP alla pagina

Inizia creando un'operazione variabile denominata "pagina" e assicurati che sia uguale alla richiesta HTTParty GET della pagina che stiamo eseguendo lo scraping.

In questo caso: https://www.olx.in/all-results/q-cars/

Successivamente, puoi inserire "Pry. inizio (vincolante).” Naviga e trova la cartella contrassegnata come file web_scraping.Rb. Salvalo subito sul desktop e apri il terminale inserendo questo comando.

cd desktop/nokogiri_tutorial

Il tuo programma di web scraping è pronto per essere implementato. Puoi eseguire questo comando ed eseguirlo:

Ruby web_scraper.RB

Il terminale dovrebbe trasformarsi in Pry ed è essenziale controllare il layout prima di lavorare su ulteriori processi. Puoi passare al passaggio successivo. Ma, prima di farlo, assicurati di digitare "exit" nel terminale scelto, lascia Pry e quindi torna alla posizione originale della cartella del programma.

Passaggio 4: passare a NokoGiri

L'obiettivo qui è prima convertire e modificare questi elenchi di auto in oggetti NokoGiri, poiché è fondamentale per l'analisi. La creazione di variabili è importante e dovrai svilupparne una nuova con il nome "parse_page". Nokogiri ha un modo particolare di convertire le stringhe HTML in oggetti Nokogiri. Puoi lasciare il Pry in fondo al codice.

Il prossimo passo sarà salvare il file contenente il comando Ruby. Pry verrà aperto automaticamente e dovrebbe essere inserita una nuova variabile "parse_page". Ciò restituirà la pagina Olx come oggetto Nokogiri.

Vai avanti e crea un file HTML nella stessa cartella con il nome 'cars.html' e copia e incolla i risultati del comando parse_page in questo file. Questi dati HTML formattati torneranno utili come riferimento in seguito.

Prima di iniziare con il passaggio successivo, esci da Pry nel tuo terminale.

Passaggio 5: analisi dei dati

L'analisi dei dati richiede una conoscenza elementare della programmazione e della codifica. Dal momento che stai cercando di estrarre i testi dei titoli di tutti gli elenchi di auto, il file cars.html ti tornerà utile nel controllo incrociato. Individua gli elementi cruciali dalla cartella ed esegui le ispezioni utilizzando lo "strumento di ispezione degli elementi" oppure puoi anche visualizzare il "codice sorgente della pagina".

Poiché abbiamo scoperto che gli elenchi sono all'interno di un div con il nome di classe 'content', questi sono i comandi che seguono :

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

auto_array

Controlla i layout di codifica e gli array ogni volta che esegui il comando. Una volta completata l'analisi, dovrai esportare i set di dati in file CSV.

Passaggio 6: esportazione di file di dati in CSV

Quando raggiungi il passaggio 6, dovresti aver completato con successo il processo di scraping e i dati non strutturati sono stati trasformati in set di dati strutturati. Torniamo ora al terminale. Esci da Pry se ci sei ancora in modo che il tuo terminale sia nella cartella nokogiri_tutorial che contiene il programma di scraping e il file cars.html. Ora digita il seguente comando:

tocca cars.csv

Ora ti verrà lasciato un file CSV vuoto in cui puoi salvare i dati da cars_array. Ora puoi scrivere un semplice script per scrivere questi dati nel nostro nuovo file CSV e hai i dati strutturati dei tuoi elenchi di auto in un file CSV. Ciò renderà più facile l'elaborazione e la manipolazione come e quando lo desideri.

Pensieri di separazione

Si spera che questo avrebbe dovuto darti un'idea approssimativa di come puoi fare lo scraping di un sito Web usando Ruby. È tempo di esplorare ed eseguire la scansione di siti più complessi e stimolanti usando questa abilità appena acquisita.