Selen kan klassifiseres som automatiseringsverktøy som gjør det mulig å skrape informasjon fra HTML-websidene for å utføre nettskraping ved hjelp av Google Chrome.
I denne opplæringen lærer du:
Hva er dataskraping ved bruk av selen?
Hvordan forbereder jeg Excel-makro før du utfører dataskraping ved hjelp av selen?
Hvordan åpne Google Chrome ved hjelp av VBA?
Hvordan åpne nettstedet i Google Chrome ved hjelp av VBA?
Hvordan skrape informasjon fra nettstedet ved hjelp av VBA?
Hvordan forbereder jeg Excel-makro før du utfører dataskraping ved hjelp av selen?
Det er visse forutsetninger som må utføres på Excel-makrofilen før du går inn i prosessen med dataskraping i Excel.
Disse forutsetningene er som følger: -
Trinn 1) Åpne en Excel-basert makro og få tilgang til utvikleralternativet for Excel.
Trinn 2) Velg alternativet Visual Basic under utviklerbåndet.
Trinn 3) Sett inn en ny modul.
Trinn 4) Initier en ny underrutine og gi den navnet test2.
Sub test2 ()Avslutt sub
Følgende vil være resultatene i modulen: -
Trinn 5) Få tilgang til referansealternativet under verktøykategorien og referer til Selenium-biblioteket. Følgende biblioteker skal henvises til modulen ettersom det hjelper med å åpne google chrome og letter utviklingen av makroskripting.
Nå er Excel-filen klar til å samhandle med Internet Explorer. Neste trinn vil være å innlemme et makroskript som vil lette dataskraping i HTML.
Hvordan åpne Google Chrome ved hjelp av VBA?
Her er trinn for å åpne Google Chrome ved hjelp av VBA
Trinn 1) Erklær og initialiser variablene i underrutinen som vist nedenfor
Sub test2 ()Demp driver som ny webdriverDemp radc, cc, kolonneC som heltall
Trinn 2) For å åpne google chrome ved bruk av selen og VBA, skriv driver.start "chrome" og trykk F5 .
Følgende vil være koden.
Sub test2 ()Demp driver som ny webdriverDemp radc, cc, kolonneC som heltallDriver.start "Chrome"Søknad. Vent nå + tidsverdi ("00:00:20")Avslutt sub
Modulen vil resultere som følger: -
Hvordan åpne nettstedet i Google Chrome ved hjelp av VBA?
Når du har tilgang til Google Chrome ved hjelp av VBA, vil neste trinn være å innlemme tilgang til et nettsted ved hjelp av VBA. Dette forenkles av get-funksjonen der URL-en må passere som doble anførselstegn i attributtet.
Følg følgende trinn som vist
Modulen vil se slik ut: -
Trykk på F5 for å utføre makroen.
Følgende webside ble åpnet i google chrome som vist
Sub test2 ()Demp driver som ny webdriverDemp radc, cc, kolonneC som heltallDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Søknad. Vent nå + tidsverdi ("00:00:20")Avslutt sub
Nå er Excel-makroen klar med hensyn til å utføre skrapingsoppgavene. Det neste trinnet viser hvordan informasjonen kan hentes ut ved å bruke selen og VBA.
Hvordan skrape informasjon fra nettstedet ved hjelp av VBA?
Anta at dagshandleren ønsker å få tilgang til dataene fra nettstedet på en daglig basis. Hver gang dagshandleren trykker på klikk på knappen, bør den automatisk trekke markedsdataene til å utmerke seg.
Fra nettstedet ovenfor vil det være nødvendig å inspisere et element og observere hvordan dataene er strukturert. Få tilgang til kildekoden nedenfor for HTML ved å trykke på control + Shift + I
Bedrift
Gruppe
Pre Close (Rs)
Gjeldende pris (Rs)
% endring
Kildekoden vil være som følger: -
Som det kan sees at dataene er strukturert som en enkelt HTML-tabell. Derfor, for å hente hele data fra HTML-tabellen, vil det kreve utforming av makro som trekker topptekstinformasjonen til HTML-tabellen og de tilsvarende dataene som er tilknyttet tabellen. Utfør følgende oppgaver som vist: -
Trinn 1) Formuler en for-loop som går gjennom HTML-headerinformasjonen som en samling. Selen-driveren må finne topptekstinformasjonen i HTML-tabellen. For å gjøre dette bruker vi metoden FindElementByClass () og FindElementByTag () til å utføre oppgaven som vist
VBA-modulen vil se slik ut: -
Sub test2 ()Demp driver som ny WebDriverDemp radc, cc, kolonneC som heltalrowc = 2Application.ScreenUpdating = Usanndriver.Begynn "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Value = t.Textcc = cc + 1Neste tNeste th
Trinn 2) Deretter vil selen-driveren finne tabelldataene ved hjelp av lignende tilnærming, som nevnt ovenfor. Du må skrive følgende kode: -
Sub test2 ()Demp driver som ny WebDriverDemp radc, cc, kolonneC som heltalrowc = 2Application.ScreenUpdating = Usanndriver.Begynn "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Value = t.Textcc = cc + 1Neste tNeste thFor hver tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolonne C = 1For hver td i tr.FindElementsByTag ("td")Ark2.Celler (rowc, columnC) .Value = td.TextkolonneC = kolonneC + 1Neste tdrowc = rowc + 1Neste trSøknad. Vent nå + TimeValue ("00:00:20")Slutt Sub
VBA-modulen vil se slik ut: -
Excel kan initialiseres ved hjelp av Range-attributtet til excel-arket eller gjennom celler-attributtet til excel-arket. For å redusere kompleksiteten til VBA-skriptet initialiseres innsamlingsdataene til excel-celler-attributtet til ark 2 som er til stede i arbeidsboken. Videre hjelper tekstattributtet med å få tekstinformasjonen plassert under HTML-koden.
Sub test2 ()Demp driver som ny WebDriverDemp radc, cc, kolonneC som heltalrowc = 2Application.ScreenUpdating = Usanndriver.Begynn "krom"driver. Få "http://demo.guru99.com/test/web-table-element.php"For hver i driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1For hver t i th.FindElementsByTag ("th")Ark2.Celler (1, cc) .Value = t.Textcc = cc + 1Neste tNeste thFor hver tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolonne C = 1For hver td i tr.FindElementsByTag ("td")Ark2.Celler (rowc, columnC) .Value = td.TextkolonneC = kolonneC + 1Neste tdrowc = rowc + 1Neste trSøknad. Vent nå + TimeValue ("00:00:20")Slutt Sub
VBA-modulen vil se slik ut: -
Trinn 3) Når makroskriptet er klart, pass og tildel underrutinen til excel-knappen og avslutt VBA-modulen. Merk knappen som oppdatering eller et passende navn som kan initialiseres til den. For dette eksemplet initialiseres knappen som oppdatering.
Trinn 4) Trykk på oppdateringsknappen for å få utgangene nedenfor
Trinn 5) Sammenlign resultatene i Excel med resultatene fra Google Chrome
Sammendrag:
Selen kan klassifiseres som automatiseringsverktøy som gjør det mulig å skrape informasjon fra HTML-websidene for å utføre nettskraping ved hjelp av Google Chrome.
Skrapingen på internett bør utføres nøye.
Det er normalt i strid med vilkårene på nettstedet å skrape ut informasjon.
Når skraping skjer gjennom selen, tilbyr den flere nettleserstøtter.
Med andre ord kan skrapen utføre lignende oppgaver med å skrape gjennom Firefox, Internet Explorer også.