Web Scraping z VBA
Co To jest skrobanie danych?
skrobanie danych to technika, która pomaga w ekstrakcji żądanych informacji ze strony internetowej HTML do lokalnego pliku obecnego na komputerze lokalnym. Zwykle plik lokalny może odpowiadać plikowi excel, plikowi word lub dowolnej aplikacji Microsoft office. Pomaga w przekazywaniu krytycznych informacji ze strony internetowej.
skrobanie danych staje się proste podczas codziennej pracy nad projektem badawczym, a taki projekt jest czysto zależny od Internetu i strony internetowej. Aby jeszcze bardziej zilustrować ten temat, weźmy przykład jednodniowego tradera, który uruchamia makro Excela, aby pobierać informacje rynkowe ze strony internetowej finansów do arkusza Excela za pomocą VBA.
w tym tutorialu dowiesz się:
- Co To jest skrobanie danych?
- jak przygotować Makro Excela przed wykonaniem skrobania danych za pomocą programu Internet explorer?
- Jak otworzyć Internet Explorer za pomocą programu Excel VBA?
- Jak otworzyć stronę w Internet Explorerze za pomocą VBA?
- jak zeskrobać informacje z witryny za pomocą VBA?
jak przygotować Makro Excela przed wykonaniem skrobania danych za pomocą programu Internet explorer?
istnieją pewne wymagania wstępne, które należy wykonać w pliku makra excel przed przejściem do procesu skrobania danych w programie excel.
te wymagania wstępne są następujące: –
Krok 1) Otwórz Makro oparte na programie Excel i uzyskaj dostęp do opcji programisty programu excel.
Krok 2) Wybierz opcję Visual Basic w obszarze Wstążka programisty.
Krok 3) włóż nowy moduł.
Krok 4) Zainicjuj nowy podprogram
Sub test()End sub
moduł spowoduje następujący wynik: –
Krok 5) Uzyskaj dostęp do opcji odniesienie w zakładce Narzędzia i odwołaj się do Microsoft HTML Object Library i Microsoft internet control.
następujące pliki mają być odwołane do modułu, ponieważ pomaga w otwarciu programu internet explorer i ułatwia rozwój skryptów makr.
teraz plik Excel jest gotowy do interakcji z Internet Explorerem. Następnym krokiem byłoby włączenie skryptów makr, które ułatwiłyby skrobanie danych w HTML.
Jak otworzyć Internet Explorer za pomocą programu Excel VBA?
Krok 1) Zainicjuj zmienną w podprogramach, jak pokazano poniżej
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Krok 2) aby otworzyć internet explorer za pomocą VBA, napisz np. visible=true i naciśnij F5.
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocumentIe.visible=true
moduł będzie wyglądał następująco: –
Jak otworzyć stronę w Internet Explorerze za pomocą VBA?
tutaj są kroki, aby otworzyć stronę internetową w Internet exploer za pomocą VBA
Krok 1) Gdy jesteś w stanie uzyskać dostęp do internet explorer za pomocą programu Excel VBA, następny krok obejmowałby dostęp do strony internetowej za pomocą VBA. Ułatwia to atrybut nawigacji, w którym adres URL musi przejść jako podwójne cudzysłowy w atrybucie. Wykonaj następujące kroki, jak pokazano.
Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE
Krok 2) – naciśnij F5, aby wykonać makro. Wyświetlona zostanie następująca strona internetowa
teraz makro programu excel jest gotowe do wykonywania funkcji skrobania. Następnym krokiem będzie wyświetlenie, w jaki sposób informacje można wyodrębnić z programu internet explorer za pomocą VBA.
jak zeskrobać informacje z witryny za pomocą VBA?
Załóżmy, że dzienny przedsiębiorca chce codziennie uzyskiwać dostęp do danych ze strony. Za każdym razem, gdy day trader naciska przycisk, powinien automatycznie pobrać dane rynkowe do programu excel.
z powyższej strony internetowej konieczne byłoby sprawdzenie elementu i obserwowanie struktury danych.
Krok 1) Uzyskaj dostęp do poniższego kodu źródłowego HTML, naciskając control + 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>
kod źródłowy będzie wyglądał następująco: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document
jak widać, dane mają strukturę pojedynczej tabeli HTML. Dlatego, aby pobrać całe dane z tabeli html, wymagałoby to zaprojektowania makra, które gromadzi dane w formie zbioru.
kolekcja zostanie następnie wklejona do Excela. Aby osiągnąć pożądane rezultaty, wykonaj poniższe kroki: –
Krok 2) Zainicjuj dokument Html w podprogramie
moduł VBA wyglądałby następująco: –
Krok 3) Zainicjuj element kolekcji obecny w dokumencie HTML
moduł VBA wyglądałby następująco: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
Krok 4) Zainicjuj komórki arkusza excel za pomocą zagnieżdżonej pętli, jak pokazano
moduł VBA wyglądałby następująco: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
excel można zainicjować za pomocą atrybutu zakres arkusza excel lub za pomocą atrybutu komórki arkusza excel. Aby zmniejszyć złożoność skryptu VBA, dane kolekcji są inicjowane do atrybutu excel cells arkusza 1 obecnego w skoroszycie.
gdy skrypt makra jest gotowy, przekaż i przypisz podprogram do przycisku excel i wyjdź z modułu VBA. Oznacz przycisk jako refresh lub dowolną odpowiednią nazwę, która może zostać zainicjowana. W tym przykładzie przycisk jest inicjowany jako odśwież.
Krok 5) Naciśnij przycisk Odśwież, aby uzyskać poniżej wymienione wyjście
Krok 6) porównaj wyniki w programie excel z wynikami programu internet explorer
Streszczenie:
- skrobanie danych pozwala użytkownikowi zeskrobać tylko te informacje, które użytkownik chce.
- skrobanie można wykonać za pomocą programu internet explorer.
- proces skrobania jest wolniejszy w przypadku internet Explorera, jednak zapewnia pożądane rezultaty użytkownikowi.
- skrobanie powinno być wykonywane z absolutną ostrożnością i ostrożnością, ponieważ może uszkodzić i uszkodzić system wykorzystywany do skrobania.