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.

  • 🧰 VBA automatizálás: A VBA az Excelből futtatja az Internet Explorert, hogy betöltsön egy weboldalt és beolvassa a HTML-jét.
  • ???? Kötelező hivatkozások: Microsoft HTML Object Library és Microsoft Az internetes vezérlőelemekre hivatkozni kell a projektben.
  • 🌐 Navigációs módszer: A Navigate metódus megnyit egy célt URL, és a kód megvárja, amíg az oldal elkészül.
  • 🧱 HTML tábla elemzése: A getElementsByTagName függvény beolvassa a táblázatot, így a sorai és cellái végigjárhatók.
  • 📊 Cellákba írás: A begyűjtött értékek munkalap cellákba kerülnek, gyakran egy Frissítés gomb mögé.
  • 🤖 AI segítség: A mesterséges intelligencia eszközei és a másodpilóták mostantól generálnak scratch-etping kódolj és igazítsd a szelektorokat, amikor az elrendezések változnak.

VBA webes scraping felülmúlni

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.

Excel makró készítése adatmásolás előttping az Internet Explorer használatával

Step 2) Válassza a Visual Basic lehetőséget a Fejlesztői menüszalag alatt.

Excel makró készítése adatmásolás előttping az Internet Explorer használatával

Step 3) Helyezzen be egy új modult.

Excel makró készítése adatmásolás előttping az Internet Explorer használatával

Step 4) Inicializáljon egy új alprogramot.

Sub test()
End Sub

A modul eredménye a következő lenne:

Excel makró készítése adatmásolás előttping az Internet Explorer használatával

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.

Referencia Microsoft HTML objektumkönyvtár és internetes vezérlők

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:

Nyissa meg az Internet Explorert az Excel VBA segítségével

Nyissa meg az Internet Explorert az Excel VBA segítségével

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ó.

Weboldal megnyitása az Internet Explorerben VBA használatával

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ú.

Kaparja le az információkat a webhelyről a VBA segítségével

Step 5) Nyomja meg a Frissítés gombot az alábbi kimenet megtekintéséhez.

Kaparja le az információkat a webhelyről a VBA segítségével

Step 6) Hasonlítsa össze az Excelben kapott eredményeket az Internet Explorerben kapott eredményekkel.

Kaparja le az információkat a webhelyről a VBA segítségével

GYIK

Két hivatkozásra van szükség a VBA-szerkesztőben az Eszközök, Hivatkozások menüpont alatt: a Microsoft HTML Object Library és Microsoft Internetvezérlők. Lehetővé teszik a VBA számára az Internet Explorer megnyitását, a navigálást egy adott helyre URL, és olvassa be az oldal HTML elemeit.

A weboldaltól függ. Sok oldal korlátozza az automatizált keresést.ping a szolgáltatási feltételeikben, ezért először tekintse át őket, és kerülje a személyes vagy szerzői jogvédelem alatt álló adatok gyűjtését.ping A személyes elemzéshez nyilvános, engedélyezett adatok általában alacsonyabb kockázattal járnak.

Az Internet Explorer elavult, ezért a modern projektek a következőt használják: Selenium VBA megközelítés, amely a Chrome-ot vezérli, Firefoxvagy Edge. Selenium több böngésző támogatását és megbízhatóbb elemkeresést kínál a jelenlegi webhelyekhez.

Igen. A mesterséges intelligenciával működő adatgyűjtők és másodpilóták képesek azonosítani az adatmezőket, ex-t generálnitracciós kódot, és automatikusan alkalmazkodik az elrendezés változásaihoz. A gépi tanulási modellek a strukturálatlan oldalakat is elemzik, csökkentve az írás és a karbantartás manuális erőfeszítéseit.ping szkripteket.

A mesterséges intelligencia számítógépes látást és természetes nyelvi feldolgozást használ a táblázatok, árak és szöveg felismerésére egy oldalon, akár fix szelektorok nélkül is. Ez az intelligens extraca kaparást okozzaping ellenállóbbá válik, ha egy weboldal szerkezete megváltozik.

Foglald össze ezt a bejegyzést a következőképpen: