Utilizzo di Excel VBA e selenio

Sommario:

Anonim

Che cos'è lo scraping dei dati utilizzando il selenio?

Il selenio può essere classificato come lo strumento di automazione che facilita lo scraping delle informazioni dalle pagine web HTML per eseguire il web scraping utilizzando Google Chrome.

In questo tutorial imparerai:

  • Che cos'è lo scraping dei dati utilizzando il selenio?
  • Come preparare Excel Macro prima di eseguire Data Scraping utilizzando Selenio?
  • Come aprire Google Chrome utilizzando VBA?
  • Come aprire il sito Web in Google Chrome utilizzando VBA?
  • Come raschiare le informazioni dal sito Web utilizzando VBA?

Come preparare Excel Macro prima di eseguire Data Scraping utilizzando Selenio?

Ci sono alcuni prerequisiti che devono essere eseguiti sul file macro di Excel prima di entrare nel processo di scraping dei dati in Excel.

Questi prerequisiti sono i seguenti: -

Passaggio 1) Apri una macro basata su Excel e accedi all'opzione sviluppatore di Excel.

Passaggio 2) Selezionare l'opzione Visual Basic nella barra multifunzione dello sviluppatore.

Passaggio 3) Inserisci un nuovo modulo.

Passaggio 4) Inizializza una nuova subroutine e chiamala test2.

Sub test2 ()Fine sub

Di seguito sono riportati i risultati nel modulo: -

Passaggio 5) Accedi all'opzione di riferimento nella scheda degli strumenti e fai riferimento alla libreria dei tipi di selenio. Le seguenti librerie devono essere referenziate al modulo in quanto aiuta nell'apertura di Google Chrome e facilita lo sviluppo di script di macro.

Ora il file Excel è pronto per interagire con Internet Explorer. I passaggi successivi consistono nell'incorporare uno script macro che faciliti lo scraping dei dati in HTML.

Come aprire Google Chrome utilizzando VBA?

Qui, sono i passaggi per aprire Google Chrome utilizzando VBA

Passaggio 1) Dichiarare e inizializzare le variabili nella subroutine come mostrato di seguito

Sub test2 ()Dim driver come nuovo webdriverDim rowc, cc, columnC come numero intero

Passaggio 2) Per aprire Google Chrome utilizzando selenio e VBA, scrivi driver.start "chrome" e premi F5 .

Il seguente sarebbe il codice.

Sub test2 ()Dim driver come nuovo webdriverDim rowc, cc, columnC come numero interoDriver.start "Chrome"Application.Wait Now + Timevalue ("00:00:20")Fine sub

Il modulo risulterebbe come segue: -

Come aprire il sito Web in Google Chrome utilizzando VBA?

Una volta che sei in grado di accedere a Google Chrome utilizzando VBA, il passaggio successivo sarebbe incorporare l'accesso a un sito Web utilizzando VBA. Ciò è facilitato dalla funzione get in cui l'URL deve passare come virgolette doppie nell'attributo.

Seguire i passaggi seguenti come visualizzato

Il modulo avrà il seguente aspetto: -

Premere F5 per eseguire la macro.

La seguente pagina web verrebbe aperta in Google Chrome come visualizzata

Sub test2 ()Dim driver come nuovo webdriverDim rowc, cc, columnC come numero interoDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Wait Now + Timevalue ("00:00:20")Fine sub

Ora la macro Excel è pronta per quanto riguarda l'esecuzione delle attività di scraping. Il passaggio successivo mostrerà come le informazioni possono essere estratte applicando selenio e VBA.

Come raschiare le informazioni dal sito Web utilizzando VBA?

Supponiamo che il day trader voglia accedere ai dati dal sito web su base giornaliera. Ogni volta che il day trader preme il clic sul pulsante, dovrebbe estrarre automaticamente i dati di mercato in Excel.

Dal sito web di cui sopra, sarebbe necessario ispezionare un elemento e osservare come sono strutturati i dati. Accedi al codice sorgente dell'HTML di seguito premendo control + Shift + I.


Il codice sorgente sarebbe il seguente: -

Come si può vedere che i dati sono strutturati come un'unica tabella HTML. Pertanto, per estrarre interi dati dalla tabella HTML, richiederebbe la progettazione di macro che estragga le informazioni di intestazione della tabella HTML ei dati corrispondenti associati alla tabella. Eseguire le seguenti attività come visualizzato: -

Passaggio 1) Formulare un ciclo for che attraversi le informazioni dell'intestazione HTML come raccolta. Il driver del selenio deve trovare le informazioni di intestazione della tabella HTML. Per fare ciò, utilizziamo il metodo FindElementByClass () e FindElementByTag () per eseguire l'attività come visualizzato

Il modulo VBA apparirà come segue: -

Sub test2 ()Dim driver come nuovo WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrome"driver.Ottieni "http://demo.guru99.com/test/web-table-element.php"Per ogni th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Per ogni t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Avanti tIl prossimo th

Passaggio 2) Successivamente, il driver del selenio individuerà i dati della tabella utilizzando l'approccio simile, come menzionato sopra. Devi scrivere il seguente codice: -

Sub test2 ()Dim driver come nuovo WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrome"driver.Ottieni "http://demo.guru99.com/test/web-table-element.php"Per ogni th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Per ogni t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Avanti tIl prossimo thPer ogni tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Per ogni td In tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextcolumnC = columnC + 1Prossimo tdrowc = rowc + 1Next trApplication.Wait Now + TimeValue ("00:00:20")End Sub

Il modulo vba avrebbe il seguente aspetto: -

L'excel può essere inizializzato tramite l'attributo Range del foglio Excel o tramite l'attributo Cells del foglio Excel. Per ridurre la complessità dello script VBA, i dati della raccolta vengono inizializzati sull'attributo delle celle excel del foglio 2 presente nella cartella di lavoro. Inoltre, l'attributo text aiuta a ottenere le informazioni di testo posizionate sotto il tag HTML.

Sub test2 ()Dim driver come nuovo WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrome"driver.Ottieni "http://demo.guru99.com/test/web-table-element.php"Per ogni th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Per ogni t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Avanti tIl prossimo thPer ogni tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Per ogni td In tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextcolumnC = columnC + 1Prossimo tdrowc = rowc + 1Next trApplication.Wait Now + TimeValue ("00:00:20")End Sub

Il modulo vba avrebbe il seguente aspetto: -

Passaggio 3) Una volta che lo script della macro è pronto, passare e assegnare la subroutine al pulsante Excel e uscire dal modulo di VBA. Etichetta il pulsante come aggiorna o qualsiasi nome adatto che potrebbe essere inizializzato su di esso. In questo esempio, il pulsante viene inizializzato come aggiornamento.

Passaggio 4) Premere il pulsante di aggiornamento per ottenere l'output indicato di seguito

Passaggio 5) Confronta i risultati in Excel con i risultati di Google Chrome

Sommario:

  • Il selenio può essere classificato come lo strumento di automazione che facilita lo scraping delle informazioni dalle pagine web HTML per eseguire il web scraping utilizzando Google Chrome.
  • La raschiatura su Internet deve essere eseguita con attenzione.
  • Normalmente è contro i termini del sito web raschiare le informazioni.
  • Quando lo scraping viene eseguito attraverso il selenio, offre il supporto di più browser.
  • In altre parole, il raschietto può eseguire attività simili di raschiatura tramite Firefox, anche Internet Explorer.
Azienda Gruppo Pre-chiusura (Rs) Prezzo corrente (Rs) % di variazione