VBA veebikaaderping Excelisse

⚡ Nutikas kokkuvõte

Veebikraapimineping VBA näidisegatracHTML-veebilehtedelt otse Excelisse andmeid kopeerida, kasutades Internet Exploreri automatiseerimist ja Microsoft HTML-objektiteek saidil navigeerimiseks, HTML-tabeli lugemiseks ja kogutud väärtuste töölehe lahtritesse kirjutamiseks.

  • 🧰 VBA automatiseerimine: VBA käivitab Exceli kaudu Internet Exploreri, et laadida veebileht ja lugeda selle HTML-koodi.
  • 📚 Nõutavad viited: Microsoft HTML Object Library ja Microsoft Projektis tuleb viidata internetikontrollidele.
  • 🌐 Navigeerimismeetod: Navigeerimismeetod avab sihtmärgi URLja kood ootab, kuni leht on valmis.
  • 🧱 HTML-tabeli parsimine: getElementsByTagName loeb tabelit, et selle ridu ja lahtreid saaks tsükliga läbi käia.
  • 📊 Kirjuta lahtritesse: Kogutud väärtused kirjutatakse töölehe lahtritesse, sageli värskendamisnupu taha.
  • 🤖 AI abi: Tehisintellekti tööriistad ja kaaspiloodid genereerivad nüüd skraapiatping koodi kirjutamine ja selektorite kohandamine paigutuse muutumisel.

VBA veebikaaderping Excelisse

Mis on andmete kraapimine?ping?

Andmete kraapimineping on tehnika, mis aitab enditracsoovitud teabe HTML-veebilehelt teie arvuti kohalikku faili. Tavaliselt on see kohalik fail Exceli fail, Wordi fail või mis tahes muu Microsoft Office'i rakendus. See aitab veebilehelt olulist teavet suunata.

Andmete kraapimineping muutub väärtuslikuks uurimispõhises projektis, mis sõltub igapäevaselt internetist. Illustreerimiseks kujutage ette päevakauplejat, kes käivitab Exceli makro, et tuua turuinfo finantsveebisaidilt VBA abil Exceli tabelisse.

Kuidas Exceli makrot enne andmete kraapimist ette valmistadaping (Internet Explorer)

Enne andmete kraapimise alustamist tuleb Exceli makrofailiga täita teatud eeltingimused.ping protsessi.

Need eeltingimused on järgmised:

Step 1) Avage Exceli-põhine makro ja avage Exceli arendaja suvand.

Valmistage enne andmete kraapimist ette Exceli makroping Internet Exploreri kasutamine

Step 2) Valige arendaja lindi alt suvand Visual Basic.

Valmistage enne andmete kraapimist ette Exceli makroping Internet Exploreri kasutamine

Step 3) Sisestage uus moodul.

Valmistage enne andmete kraapimist ette Exceli makroping Internet Exploreri kasutamine

Step 4) Uue alamprogrammi initsialiseerimine.

Sub test()
End Sub

Mooduli tulemus oleks järgmine:

Valmistage enne andmete kraapimist ette Exceli makroping Internet Exploreri kasutamine

Step 5) Avage vahekaardil Tööriistad suvand „Viide“ ja viidake Microsoft HTML Object Library ja Microsoft Interneti juhtnupud.

Järgmistele failidele tuleb viidata moodulile, kuna need aitavad avada Internet Explorerit ja hõlbustavad makroskriptimist.

Viide Microsoft HTML-objektide teek ja interneti juhtelemendid

Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmine samm on makroskriptide lisamine, mis hõlbustavad andmete skannimist.ping HTML-is.

Kuidas avada Internet Explorerit Exceli VBA abil

Step 1) Initsialiseeri alamprogrammi muutuja allpool näidatud viisil.

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

Step 2) Internet Exploreri avamiseks VBA abil kirjutage ie.Visible = True 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:

Avage Internet Explorer Excel VBA abil

Avage Internet Explorer Excel VBA abil

Kuidas avada veebisaiti Internet Exploreris VBA abil

Siin on sammud veebisaidi avamiseks Internet Exploreris VBA abil.

Step 1) Kui teil on võimalik Internet Explorerile ligi pääseda Exceli VBA abil, on järgmine samm veebisaidile ligi pääseda VBA abil. Seda hõlbustab atribuut Navigate, kus URL edastatakse jutumärkidena. Järgige kuvatud samme.

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) Makro käivitamiseks vajutage F5. Avaneb järgmine veebileht, nagu näidatud.

Ava veebileht Internet Exploreris VBA abil

Nüüd on Exceli makro skrambleerimiseks valmis.ping funktsioonid. Järgmine samm näitab, kuidas teavet saab kasutadatracInternet Explorerist VBA abil loodud.

Kuidas VBA abil veebisaidilt teavet kraapida

Oletame, et päevakaupleja soovib veebisaidil olevatele andmetele iga päev ligi pääseda. Iga kord, kui päevakaupleja nupule klõpsab, peaks turuandmed automaatselt Excelisse laadima.

Ülaltoodud veebisaidilt on vaja elementi kontrollida ja jälgida, kuidas andmed on struktureeritud.

Step 1) HTML-i lähtekoodile pääsemiseks vajutage Ctrl + Shift + Mina.

<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äete, on andmed struktureeritud ühe HTML-tabelina. Seega, et kogu teave HTML-tabelist kätte saada, peate looma makro, mis kogub andmed ühtse kogumina.

Seejärel kleebitakse kogumik Excelisse. Soovitud tulemuste saavutamiseks toimige järgmiselt.

Step 2) Initsialiseeri HTML-dokument alamprogrammis.

Step 3) Initsialiseeri HTML-dokumendis olev kollektsioonielement.

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) Initsialiseeri Exceli lehe lahtrid pesastatud tsükli abil, nagu näidatud.

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 initsialiseerida lehe atribuudi „Range” või „Cells” abil. VBA-skripti keerukuse vähendamiseks initsialiseeritakse kogutud andmed töövihiku 1. lehe atribuudi „Cells” abil.

Kui makroskript on valmis, määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp nimega Värskenda või mis tahes muu sobiv nimi. Selle näite puhul on nupu nimeks Värskenda.

Võtke VBA abil veebisaidilt teavet

Step 5) Alloleva väljundi saamiseks vajutage nuppu Värskenda.

Võtke VBA abil veebisaidilt teavet

Step 6) Võrdle Exceli tulemusi Internet Exploreri tulemustega.

Võtke VBA abil veebisaidilt teavet

KKK

VBA redaktoris on vaja kahte viidet menüü Tööriistad all Viited: Microsoft HTML Object Library ja Microsoft Interneti juhtelemendid. Need lasevad VBA-l avada Internet Exploreri, navigeerida URLja loe lehe HTML-elemente.

See sõltub veebisaidist. Paljud saidid piiravad automatiseeritud skrambleerimist.ping nende teenusetingimustes, seega lugege need kõigepealt läbi ja vältige isikuandmete või autoriõigustega kaitstud andmete kogumist.ping Avalike, isikuandmete analüüsiks lubatud andmete kasutamine on üldiselt väiksema riskiga.

Internet Explorer on aegunud, seega kasutavad tänapäevased projektid seda Selenium VBA lähenemisviis, mis Chrome'i edasi viib, Firefoxvõi Edge. Selenium pakub mitme brauseri tuge ja usaldusväärsemat elementide asukohta praegustele veebisaitidele.

Jah. Tehisintellektil põhinevad skreeperid ja kaaspiloodid suudavad tuvastada andmevälju, genereerida näiteidtrackoodi ja kohanduvad automaatselt paigutuse muudatustega. Masinõppe mudelid parsivad ka struktureerimata lehti, vähendades käsitsi kirjutamise ja skriptimise haldamise pingutust.ping skripte.

Tehisintellekt kasutab tabelite, hindade ja teksti tuvastamiseks lehel arvutinägemist ja loomuliku keele töötlemist, isegi ilma fikseeritud selektoriteta. See intelligentne ekstractsioon teeb kriimustusiping vastupidavam, kui veebisait muudab oma struktuuri.

Võta see postitus kokku järgmiselt: