VBA Web Scraping eccellere
โก Riepilogo intelligente
Web scrapping con VBA extracdati ts da pagine web HTML direttamente in Excel, utilizzando l'automazione di Internet Explorer e Microsoft Libreria di oggetti HTML per navigare in un sito, leggere una tabella HTML e scrivere i valori raccolti nelle celle di un foglio di calcolo.

Che cos'รจ Data Scra?ping?
Raccolta datiping รจ la tecnica che aiuta extractrasferire le informazioni desiderate da una pagina web HTML a un file locale sul tuo computer. Normalmente, quel file locale รจ un file Excel, un file Word o qualsiasi altro file. Microsoft Applicazione per ufficio. Aiuta a veicolare informazioni critiche dalla pagina web.
Raccolta datiping Diventa prezioso in un progetto di ricerca che dipende quotidianamente da Internet. Per illustrare, si pensi a un day trader che esegue una macro di Excel per estrarre informazioni di mercato da un sito web finanziario e inserirle in un foglio Excel utilizzando VBA.
Come preparare la macro di Excel prima dell'estrazione dei datiping (Internet Explorer)
Prima di iniziare l'estrazione dei dati, รจ necessario eseguire alcuni prerequisiti sul file macro di Excel.ping
I prerequisiti sono i seguenti:
Passo 1) Apri una macro basata su Excel e accedi alle opzioni Sviluppatore di Excel.
Passo 2) Seleziona l'opzione Visual Basic nella barra multifunzione Sviluppo.
Passo 3) Inserisci un nuovo modulo.
Passo 4) Inizializza una nuova subroutine.
Sub test() End Sub
Il modulo risulterebbe come segue:
Passo 5) Accedere all'opzione Riferimento nella scheda Strumenti e fare riferimento a Microsoft Libreria di oggetti HTML e Microsoft Comandi Internet.
I seguenti file devono essere aggiunti al modulo come riferimento, poichรฉ consentono di aprire Internet Explorer e facilitano la creazione di script macro.
Ora il file Excel รจ pronto per interagire con Internet Explorer. Il passo successivo รจ incorporare script macro che facilitino l'estrazione dei dati.ping in HTML.
Come aprire Internet Explorer utilizzando Excel VBA
Passo 1) Inizializzare la variabile nella subroutine come mostrato di seguito.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Passo 2) Per aprire Internet Explorer tramite VBA, scrivi ie.Visible = True e premi F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
Il modulo si presenterebbe nel seguente modo:
Come aprire un sito Web in Internet Explorer utilizzando VBA
Ecco i passaggi per aprire un sito Web in Internet Explorer utilizzando VBA.
Passo 1) Una volta che รจ possibile accedere a Internet Explorer utilizzando Excel VBA, il passo successivo รจ accedere a un sito Web utilizzando VBA. Ciรฒ รจ facilitato dall'attributo Navigate, dove URL viene passato come virgolette doppie. Segui i passaggi indicati.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Passo 2) Premi F5 per eseguire la macro. Si aprirร la pagina web mostrata nell'immagine.
Ora la macro di Excel รจ pronta per eseguire lo scratchping funzioni. Il passo successivo mostra come le informazioni possono essere espressetracted da Internet Explorer utilizzando VBA.
Come estrarre informazioni da un sito web utilizzando VBA
Supponiamo che un day trader voglia accedere quotidianamente ai dati dal sito web. Ogni volta che il day trader clicca sul pulsante, i dati di mercato dovrebbero essere automaticamente importati in Excel.
Dal sito web sopra indicato, รจ necessario esaminare un elemento e osservare come sono strutturati i dati.
Passo 1) Accedi al codice sorgente dell'HTML qui sotto premendo Control + Shift + Io.
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
Il codice sorgente sarebbe il seguente:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Come puoi vedere, i dati sono strutturati come un'unica tabella HTML. Pertanto, per estrarre tutti i dati dalla tabella HTML, รจ necessario progettare una macro che raccolga i dati come una collezione.
La raccolta viene quindi incollata in Excel. Per ottenere i risultati desiderati, seguire i passaggi seguenti.
Passo 2) Inizializza il documento HTML nella subroutine.
Passo 3) Inizializza l'elemento collezione presente nel documento HTML.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Passo 4) Inizializza le celle del foglio Excel utilizzando un ciclo annidato, come mostrato.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
ร possibile inizializzare Excel utilizzando l'attributo Range o l'attributo Cells del foglio. Per ridurre la complessitร dello script VBA, i dati della raccolta vengono inizializzati nell'attributo Cells del Foglio 1 della cartella di lavoro.
Una volta pronto lo script della macro, assegna la subroutine a un pulsante di Excel ed esci dal modulo VBA. Assegna al pulsante il nome "Aggiorna" o un nome a tua scelta. In questo esempio, il pulsante si chiama "Aggiorna".
Passo 5) Premi il pulsante Aggiorna per visualizzare il risultato mostrato di seguito.
Passo 6) Confronta i risultati ottenuti in Excel con quelli ottenuti in Internet Explorer.











