Veebi kraapimine VBA-ga
Mis on andmete kraapimine?
Andmete kraapimine on tehnika, mis aitab HTML-i veebilehelt soovitud teavet hankida teie kohalikus masinas asuvasse kohalikku faili. Tavaliselt võib kohalik fail vastata Exceli failile, Wordi failile või mis tahes muule Microsoft kontorirakendus. See aitab suunata veebilehelt olulist teavet.
Andmete kraapimine muutub igapäevaselt teaduspõhise projekti kallal töötades lihtsaks ning selline projekt sõltub puhtalt internetist ja veebisaidist. Teema täiendavaks illustreerimiseks võtame näite päevakauplejast, kes juhib Exceli makrot, et tõmmata VBA abil finantsveebisaidilt turuteave Exceli lehele.
Kuidas Exceli makrot ette valmistada enne andmete kraapimist Internet Exploreri abil?
Enne Excelis andmete kraapimist tuleb Exceli makrofailis täita teatud eeltingimused.
Need eeltingimused on järgmised: -
Step 1) Avage Exceli-põhine makro ja pääsete juurde Exceli arendajavalikule.
Step 2) Valige Arendaja lindi all suvand Visual Basic.
Step 3) Sisestage uus moodul.
Step 4) Initsialiseerige uus alamprogramm
Sub test() End sub
Mooduli tulemus oleks järgmine: -
Step 5) Juurdepääs viitevalikule tööriista vahekaardi ja viite all Microsoft HTML Object Library ja Microsoft Interneti juhtimine.
Moodulile tuleb viidata järgmistele failidele, kuna see aitab avada Internet Explorerit ja hõlbustab makroskriptimise arendamist.
Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmine samm oleks lisada makroskriptid, mis hõlbustaksid andmete kraapimist HTML-is.
Kuidas avada Internet Explorer Excel VBA abil?
Step 1) Initsialiseerige muutuja alamprogrammides, nagu allpool näidatud
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Step 2) Internet Exploreri avamiseks VBA abil kirjutage st nähtav=tõene ja vajutage F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Moodul näeks välja järgmine: -
Kuidas avada veebisaiti Internet Exploreris VBA abil?
Siin on juhised veebisaidi avamiseks Internet Exploreris VBA abil
Step 1) Kui teil on Excel VBA abil juurdepääs Internet Explorerile, hõlmab järgmine samm veebisaidile juurdepääsu VBA abil. Seda hõlbustab atribuut Navigate, kus URL peab atribuudis olema jutumärkidena. Järgige järgmisi samme, nagu kuvatakse.
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
samm 2) - Makro käivitamiseks vajutage klahvi F5. Järgmine veebileht avatakse kuvatud kujul
Nüüd on Exceli makro kraapimisfunktsioonide täitmiseks valmis. Järgmine samm näitab, kuidas teavet saab VBA abil Internet Explorerist eraldada.
Kuidas VBA abil veebisaidilt teavet kraapida?
Oletame, et päevakaupleja soovib igapäevaselt veebisaidilt andmetele juurde pääseda. Iga kord, kui päevakaupleja vajutab nuppu, peaks ta turuandmed automaatselt Excelisse tõmbama.
Ülaltoodud veebisaidilt oleks vaja mõnda elementi kontrollida ja jälgida, kuidas andmed on struktureeritud.
Step 1) Juurdepääs allolevale HTML-i lähtekoodile, vajutades juhtklahvi + 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>
Lähtekood oleks järgmine: -
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
Nagu näha, on andmed struktureeritud ühtse HTML-tabelina. Seetõttu oleks html-tabelist kogu andmete tõmbamiseks vaja koostada makro, mis kogub andmed kogumi kujul.
Seejärel kleebitakse kogu Excelisse. Soovitud tulemuste saavutamiseks tehke alltoodud samme: -
Step 2) Initsialiseerige alamprogrammis HTML-dokument
VBA moodul näeks välja järgmine: -
Step 3) Initsialiseerige HTML-dokumendis olev kogu element
VBA moodul näeks välja järgmine: -
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) Initsialiseerige Exceli lehe lahtrid pesastatud silmuse abil, nagu näidatud
VBA moodul näeks välja järgmine: -
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")
Exceli saab lähtestada, kasutades Exceli lehe atribuuti vahemik või Exceli lehe lahtrite atribuuti. VBA-skripti keerukuse vähendamiseks lähtestatakse kogumisandmed töövihikus oleva lehe 1 Exceli lahtrite atribuudiga.
Kui makroskript on valmis, edastage ja määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp värskenduseks või mis tahes sobivaks nimeks, mida saaks selle initsialiseerida. Selle näite puhul lähtestatakse nupp värskendusena.
Step 5) Allpool nimetatud väljundi saamiseks vajutage värskendamisnuppu
Step 6) Võrrelge tulemusi Excelis Internet Exploreri tulemustega
kokkuvõte
- Andmete kraapimine võimaldab kasutajal välja kraapida ainult seda teavet, mida kasutaja soovib. Selleks otstarbeks parimate tööriistade leidmiseks vaadake seda veebikraapimistööriistade loendit, mis aitavad teil erinevatelt veebisaitidelt soovitud teavet tõhusalt välja võtta.
- Kraapimist saab teha Internet Exploreri abil.
- Internet Exploreri puhul on kraapimise protsess aeglasem; kuid see annab kasutajale soovitud tulemused.
- Kraapimine peaks toimuma äärmiselt ettevaatlikult ja ettevaatlikult, kuna see võib kraapimiseks kasutatavat süsteemi kahjustada ja kokkujooksda.











