VBA webes scraping felülmúlni
⚡ Okos összefoglaló
Webkaparásping VBA példávaltracHTML weboldalakról közvetlenül Excelbe lehet adatokat importálni az Internet Explorer automatizálásának és a Microsoft HTML objektumkönyvtár webhelyen való navigáláshoz, HTML-táblázat beolvasásához és a begyűjtött értékek munkalap cellákba írásához.

Mi az a Data Scrat?ping?
Adatmásolásping az a technika, ami segít az ex-nektract másolhatja a kívánt információkat egy HTML weboldalról egy helyi fájlba a gépén. Normális esetben ez a helyi fájl egy Excel fájl, egy Word fájl vagy bármilyen más Microsoft Office alkalmazás. Segít a weboldalról származó kritikus információk csatornázásában.
Adatmásolásping értékessé válik egy kutatás-alapú projektben, amely naponta függ az internettől. Szemléltetésképpen vegyünk egy napi kereskedőt, aki egy Excel makrót futtat, hogy piaci információkat nyerjen ki egy pénzügyi weboldalról VBA használatával egy Excel táblázatba.
Hogyan készítsük el az Excel makrót az adatmásolás előtt?ping (Internet böngésző)
Bizonyos előfeltételeket teljesíteni kell az Excel makrófájlon az adatmásolás megkezdése előtt.ping folyamat.
Ezek az előfeltételek a következők:
Step 1) Nyisson meg egy Excel-alapú makrót, és nyissa meg az Excel fejlesztői beállításait.
Step 2) Válassza a Visual Basic lehetőséget a Fejlesztői menüszalag alatt.
Step 3) Helyezzen be egy új modult.
Step 4) Inicializáljon egy új alprogramot.
Sub test() End Sub
A modul eredménye a következő lenne:
Step 5) Nyissa meg a Referencia opciót az Eszközök fül alatt, és hivatkozzon a Microsoft HTML Object Library és Microsoft Internetes vezérlők.
A következő fájlokra a modulra kell hivatkozni, mivel ezek segítenek megnyitni az Internet Explorert és megkönnyítik a makrók futtatását.
Most az Excel-fájl készen áll az Internet Explorerrel való interakcióra. A következő lépés a makrószkriptek beépítése, amelyek megkönnyítik az adatmásolást.ping HTML-ben.
Az Internet Explorer megnyitása Excel VBA használatával
Step 1) Inicializálja a változót az alprogramban az alábbiak szerint.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Step 2) Az Internet Explorer VBA-val történő megnyitásához írja be az ie.Visible = True parancsot, és nyomja meg az F5 billentyűt.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
A modul a következőképpen nézne ki:
Weboldal megnyitása az Internet Explorerben VBA használatával
Íme a lépések, amelyekkel megnyithat egy weboldalt az Internet Explorerben VBA használatával.
Step 1) Miután az Internet Explorerhez hozzáfért az Excel VBA használatával, a következő lépés egy webhely elérése VBA használatával. Ezt a Navigate attribútum teszi lehetővé, ahol a URL dupla idézőjelekként kerül átadásra. Kövesse a bemutatott lépéseket.
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
Step 2) Nyomja meg az F5 billentyűt a makró végrehajtásához. A következő weboldal fog megnyílni, ahogy az ábrán látható.
Az Excel makró most már készen áll a scraw végrehajtására.ping függvények. A következő lépés bemutatja, hogyan lehet az információt extracInternet Explorerből VBA használatával.
Hogyan lehet információkat lekaparni egy weboldalról VBA használatával
Tegyük fel, hogy a napi kereskedő naponta szeretné elérni a weboldal adatait. Minden alkalommal, amikor a napi kereskedő rákattint a gombra, a piaci adatoknak automatikusan Excelbe kell kerülniük.
A fenti weboldalról meg kell vizsgálni egy elemet, és meg kell figyelni, hogyan vannak strukturálva az adatok.
Step 1) A Control + billentyűkombináció megnyomásával elérheti az alábbi HTML forráskódját. Shift +I.
<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>
A forráskód a következő lenne:
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
Amint látható, az adatok egyetlen HTML-táblázatként vannak strukturálva. Ezért ahhoz, hogy a teljes adatokat kinyerjük a HTML-táblázatból, létre kell hoznunk egy makrót, amely egy gyűjteményként gyűjti össze az adatokat.
A gyűjteményt ezután beillesztjük az Excelbe. A kívánt eredmények eléréséhez hajtsa végre az alábbi lépéseket.
Step 2) Inicializálja a HTML dokumentumot az alprogramban.
Step 3) Inicializálja a HTML dokumentumban található gyűjteményelemet.
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")
Step 4) Inicializálja az Excel munkalap celláit egy beágyazott ciklus segítségével az ábrán látható módon.
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")
Az Excel inicializálható a munkalap Range vagy Cells attribútumával. A VBA szkript bonyolultságának csökkentése érdekében a gyűjteményadatok a munkafüzet 1. munkalapjának Cells attribútumával inicializálódnak.
Miután a makrószkript elkészült, rendelje hozzá az alprogramot egy Excel gombhoz, és lépjen ki a VBA modulból. Nevezze el a gombot Frissítésként vagy bármilyen más megfelelő néven. Ebben a példában a gomb Frissítés feliratú.
Step 5) Nyomja meg a Frissítés gombot az alábbi kimenet megtekintéséhez.
Step 6) Hasonlítsa össze az Excelben kapott eredményeket az Internet Explorerben kapott eredményekkel.











