Web Scraping con VBA

Sommario:

Anonim

Che cos'è lo scraping dei dati?

Il data scraping è la tecnica che aiuta nell'estrazione delle informazioni desiderate da una pagina web HTML a un file locale presente nel tuo computer locale. Normalmente, un file locale potrebbe corrispondere a un file Excel, a un file word o a qualsiasi applicazione di Microsoft Office. Aiuta a canalizzare le informazioni critiche dalla pagina web.

Il data scraping diventa semplice quando si lavora su un progetto basato sulla ricerca su base giornaliera, e tale progetto dipende esclusivamente da Internet e dal sito web. Per illustrare ulteriormente l'argomento, prendiamo l'esempio di un day trader che esegue una macro Excel per estrarre informazioni di mercato da un sito Web finanziario in un foglio Excel utilizzando VBA.

In questo tutorial imparerai:

  • Che cos'è lo scraping dei dati?
  • Come preparare la macro di Excel prima di eseguire lo scraping dei dati utilizzando Internet Explorer?
  • Come aprire Internet Explorer utilizzando Excel VBA?
  • Come aprire il sito Web in Internet Explorer utilizzando VBA?
  • Come raschiare le informazioni dal sito Web utilizzando VBA?

Come preparare la macro di Excel prima di eseguire lo scraping dei dati utilizzando Internet Explorer?

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

Sub test()End sub

Il modulo risulterebbe come segue: -

Passaggio 5) Accedi all'opzione di riferimento nella scheda degli strumenti e fai riferimento alla libreria di oggetti HTML di Microsoft e al controllo Internet di Microsoft.

I seguenti file devono essere referenziati al modulo in quanto aiuta ad aprire Internet Explorer e facilita lo sviluppo di macro scripting.

Ora il file Excel è pronto per interagire con Internet Explorer. Il passaggio successivo consiste nell'incorporare gli script macro che faciliterebbero lo scraping dei dati in HTML.

Come aprire Internet Explorer utilizzando Excel VBA?

Passaggio 1) Inizializzare la variabile nelle subroutine come mostrato di seguito

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Passaggio 2) Per aprire Internet Explorer utilizzando VBA, scrivi ie visible = true e premi F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Il modulo avrà il seguente aspetto: -

Come aprire il sito Web in Internet Explorer utilizzando VBA?

Ecco i passaggi per aprire il sito Web in Internet Explorer utilizzando VBA

Passaggio 1) Una volta che sei in grado di accedere a Internet Explorer utilizzando Excel VBA, il passaggio successivo includerà l'accesso a un sito Web utilizzando VBA. Ciò è facilitato da Navigate Attribute, in cui l'URL deve passare come virgolette doppie nell'attributo. Seguire i passaggi seguenti come visualizzato.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Passaggio 2) - Premere F5 per eseguire la macro. La seguente pagina web verrà aperta come visualizzata

Ora, la macro excel è pronta per eseguire le funzioni di scraping. Il passaggio successivo mostrerà come le informazioni possono essere estratte da Internet Explorer utilizzando 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.

Passaggio 1) Accedi al codice sorgente dell'HTML di seguito premendo control + Shift + I.

Il codice sorgente sarebbe il seguente: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

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 raccolgono i dati sotto forma di raccolta.

La raccolta verrebbe quindi incollata in Excel. Per ottenere i risultati desiderati, eseguire i passaggi indicati di seguito: -

Passaggio 2) Inizializza il documento Html nella subroutine

Il modulo VBA apparirà come segue: -

Passaggio 3) Inizializza l'elemento della raccolta presente nel documento HTML

Il modulo VBA apparirà come segue: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Passaggio 4) Inizializza le celle del foglio Excel con l'aiuto del ciclo nidificato come mostrato

Il modulo VBA apparirà come segue: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

L'excel può essere inizializzato utilizzando l'attributo intervallo del foglio Excel o tramite l'attributo celle del foglio Excel. Per ridurre la complessità dello script VBA, i dati della raccolta vengono inizializzati sull'attributo delle celle excel del foglio 1 presente nella cartella di lavoro.

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 5) Premere il pulsante di aggiornamento per ottenere l'output indicato di seguito

Passaggio 6) Confronta i risultati in Excel con i risultati di Internet Explorer

Sommario:

  • Lo scraping dei dati consente all'utente di estrarre solo le informazioni che l'utente desidera.
  • Lo scraping può essere eseguito utilizzando Internet Explorer.
  • Il processo di scraping è più lento nel caso di Internet Explorer; tuttavia, fornisce i risultati desiderati all'utente.
  • La raschiatura deve essere eseguita con assoluta attenzione e cautela in quanto può danneggiare e mandare in crash il sistema utilizzato per la raschiatura.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change