Hvad er dataskrabning ved hjælp af selen?
Selen kan klassificeres som automatiseringsværktøjet, der letter skrabning af information fra HTML-websiderne til at udføre webskrabning ved hjælp af Google Chrome.
I denne vejledning lærer du:
- Hvad er dataskrabning ved hjælp af selen?
- Hvordan forberedes Excel-makro inden udførelse af dataskrabning ved hjælp af selen?
- Hvordan åbner jeg Google Chrome ved hjælp af VBA?
- Hvordan åbner jeg websted i Google Chrome ved hjælp af VBA?
- Hvordan skrabes information fra webstedet ved hjælp af VBA?
Hvordan forberedes Excel-makro inden udførelse af dataskrabning ved hjælp af selen?
Der er visse forudsætninger, der skal udføres på excel-makrofilen, før de går i gang med dataskrabning i Excel.
Disse forudsætninger er som følger: -
Trin 1) Åbn en Excel-baseret makro, og få adgang til udviklerens mulighed for excel.
Trin 2) Vælg Visual Basic-indstilling under Udviklerbånd.
Trin 3) Indsæt et nyt modul.
Trin 4) Initialiser en ny subrutine, og navngiv den som test2.
Underprøve2 ()Afslut sub
Følgende ville være resultaterne i modulet: -
Trin 5) Få adgang til referencemuligheden under fanen værktøj og reference Selenium-biblioteket. Følgende biblioteker skal henvises til modulet, da det hjælper med at åbne google chrome og letter udviklingen af makro-scripting.
Nu er Excel-filen klar til at interagere med Internet Explorer. Næste skridt ville være at inkorporere et makro-script, der letter dataskrabning i HTML.
Hvordan åbner jeg Google Chrome ved hjælp af VBA?
Her er trin til at åbne Google Chrome ved hjælp af VBA
Trin 1) Erklær og initialiser variablerne i underrutinen som vist nedenfor
Underprøve2 ()Dim driver som ny webdriverDæmp række c, cc, kolonne C som heltal
Trin 2) For at åbne google chrome ved hjælp af selen og VBA, skriv driver.start "chrome" og tryk på F5 .
Følgende ville være koden.
Underprøve2 ()Dim driver som ny webdriverDæmp række c, cc, kolonne C som heltalDriver.start "Chrome"Ansøgning.Vent nu + tidsværdi ("00:00:20")Afslut sub
Modulet ville resultere som følger: -
Hvordan åbner jeg websted i Google Chrome ved hjælp af VBA?
Når du er i stand til at få adgang til google chrome ved hjælp af VBA, er det næste trin at inkorporere adgang til et websted ved hjælp af VBA. Dette letter af get-funktionen, hvor URL'en skal passere som dobbelt anførselstegn i attributten.
Følg følgende trin som vist
Modulet ser ud som følger: -
Tryk på F5 for at udføre makroen.
Den følgende webside åbnes i Google Chrome som vist
Underprøve2 ()Dim driver som ny webdriverDæmp række c, cc, kolonne C som heltalDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Ansøgning.Vent nu + tidsværdi ("00:00:20")Afslut sub
Nu er excel-makroen klar med hensyn til udførelse af skrabeopgaverne. Det næste trin viser, hvordan oplysningerne kan udvindes ved at anvende selen og VBA.
Hvordan skrabes information fra webstedet ved hjælp af VBA?
Antag, at den daglige erhvervsdrivende ønsker at få adgang til dataene fra hjemmesiden på daglig basis. Hver gang den daglige erhvervsdrivende trykker på klik på knappen, skal den automatisk trække markedsdataene til excel.
Fra ovenstående webside ville det være nødvendigt at inspicere et element og observere, hvordan dataene er struktureret. Få adgang til nedenstående kildekode for HTML ved at trykke på kontrol + Shift + I
Virksomhed Gruppe Pre Close (Rs) Aktuel pris (Rs) % ændring
Kildekoden vil være som følger: -
Som det kan ses, at dataene er struktureret som en enkelt HTML-tabel. Derfor, for at trække hele data fra HTML-tabellen, ville det kræve, at der designes en makro, der trækker headeroplysningerne i HTML-tabellen og de tilsvarende data, der er knyttet til tabellen. Udfør følgende opgaver som vist: -
Trin 1) Formuler en for-loop, der løber gennem HTML-headeroplysningerne som en samling. Seleniumdriveren skal finde headeroplysningerne i HTML-tabellen. For at gøre dette bruger vi FindElementByClass () og FindElementByTag () -metoden til at udføre opgaven som vist
VBA-modulet ser ud som følger: -
Underprøve2 ()Dim driver Som ny WebDriverDim rowc, cc, columnC As Integerrække c = 2Application.ScreenUpdating = Falskdriver.Start "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver th i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Værdi = t.Tekstcc = cc + 1Næste tNæste th
Trin 2) Dernæst ville selen-driveren lokalisere tabeldataene ved hjælp af den samme fremgangsmåde som nævnt ovenfor. Du skal skrive følgende kode: -
Underprøve2 ()Dim driver Som ny WebDriverDim rowc, cc, columnC As Integerrække c = 2Application.ScreenUpdating = Falskdriver.Start "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver th i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Værdi = t.Tekstcc = cc + 1Næste tNæste thFor hver tr i driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolonne C = 1For hver td i tr.FindElementsByTag ("td")Ark2.Celler (rækkec, kolonneC) .Værdi = td.Tekstkolonne C = kolonne C + 1Næste tdrække c = række + 1Næste trAnsøgning.Vent nu + TimeValue ("00:00:20")Afslut sub
VBA-modulet ser ud som følger: -
Excel kan initialiseres ved hjælp af Range-attributten for excel-arket eller gennem celler-attributten for excel-arket. For at reducere kompleksiteten af VBA-scriptet initialiseres indsamlingsdataene til excel-celler-attributten for ark 2, der er til stede i projektmappen. Desuden hjælper tekstattributten med at få tekstinformationen placeret under HTML-tag.
Underprøve2 ()Dim driver Som ny WebDriverDim rowc, cc, columnC As Integerrække c = 2Application.ScreenUpdating = Falskdriver.Start "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver th i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Værdi = t.Tekstcc = cc + 1Næste tNæste thFor hver tr i driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolonne C = 1For hver td i tr.FindElementsByTag ("td")Ark2.Celler (rækkec, kolonneC) .Værdi = td.Tekstkolonne C = kolonne C + 1Næste tdrække c = række + 1Næste trAnsøgning.Vent nu + TimeValue ("00:00:20")Afslut sub
VBA-modulet ser ud som følger: -
Trin 3) Når makroscriptet er klar, skal du sende og tildele subrutinen til excel-knappen og afslutte VBA-modulet. Mærk knappen som opdatering eller ethvert passende navn, der kunne initialiseres til den. I dette eksempel initialiseres knappen som opdatering.
Trin 4) Tryk på opdateringsknappen for at få nedenstående output
Trin 5) Sammenlign resultaterne i Excel med resultaterne af Google Chrome
Resumé:
- Selen kan klassificeres som automatiseringsværktøjet, der letter skrabning af information fra HTML-websiderne til at udføre webskrabning ved hjælp af Google Chrome.
- Skrabning på Internettet skal udføres omhyggeligt.
- Det er normalt imod webstedets vilkår at skrabe information ud.
- Når skrabning sker gennem selen, tilbyder det flere browsersupport.
- Med andre ord kan skraberen udføre lignende opgaver med at skrabe gennem Firefox, Internet Explorer så godt.