Skrobanie sieci za pomocą VBA
Co to jest skrobanie danych?
Skrobanie danych to technika pomagająca w ekstrakcji pożądanych informacji ze strony internetowej HTML do lokalnego pliku znajdującego się na komputerze lokalnym. Zwykle plik lokalny może odpowiadać plikowi Excela, plikowi Word lub dowolnemu Microsoft aplikacja biurowa. Pomaga w przekazywaniu krytycznych informacji ze strony internetowej.
Skrobanie danych staje się proste, gdy na co dzień pracujemy nad projektem badawczym, a taki projekt jest zależny wyłącznie od Internetu i strony internetowej. Aby lepiej zilustrować ten temat, weźmy przykład day tradera, który uruchamia makro Excela w celu pobrania informacji rynkowych ze strony internetowej poświęconej finansom do arkusza Excela przy użyciu języka VBA.
Jak przygotować makro Excela przed wykonaniem Data Scrapingu w przeglądarce Internet Explorer?
Istnieją pewne warunki wstępne, które należy spełnić w pliku makra programu Excel przed przystąpieniem do procesu skrobania danych w programie Excel.
Te przesłanki są następujące: –
Krok 1) Otwórz makro oparte na programie Excel i uzyskaj dostęp do opcji programistycznych programu Excel.
Krok 2) Wybierz opcję Visual Basic na wstążce Deweloper.
Krok 3) Włóż nowy moduł.
Krok 4) Zainicjuj nowy podprogram
Sub test() End sub
Wynik modułu będzie następujący: –
Krok 5) Uzyskaj dostęp do opcji odniesienia pod zakładką narzędzia i odnośnikiem Microsoft Biblioteka obiektów HTML i Microsoft kontrola Internetu.
Poniższe pliki należy traktować jako odniesienie do modułu, ponieważ ułatwia on otwieranie przeglądarki Internet Explorer i tworzenie skryptów makr.
Teraz plik Excel jest gotowy do interakcji z przeglądarką Internet Explorer. Następnym krokiem byłoby włączenie makroskryptów, które ułatwiłyby skrobanie danych w formacie HTML.
Jak otworzyć przeglądarkę 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ć przeglądarkę Internet Explorer za pomocą VBA, napisz tj. widoczne = prawdziwe i naciśnij F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Moduł wyglądałby następująco: –
Jak otworzyć stronę internetową w przeglądarce Internet Explorer za pomocą VBA?
Oto kroki, jak otworzyć witrynę internetową w przeglądarce internetowej przy użyciu języka VBA
Krok 1) Gdy będziesz mieć dostęp do przeglądarki Internet Explorer za pomocą programu Excel VBA, następnym krokiem będzie dostęp do witryny za pomocą programu VBA. Ułatwia to atrybut Navigate, w którym adres URL musi być przekazany jako podwójne cudzysłowy w atrybucie. Wykonaj następujące kroki, jak pokazano.
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
Krok 2) – Naciśnij F5, aby wykonać makro. Następująca strona internetowa zostanie otwarta w sposób pokazany
Teraz makro Excela jest gotowe do wykonywania funkcji skrobania. Następny krok pokaże, w jaki sposób można wyodrębnić informacje z przeglądarki Internet Explorer za pomocą języka VBA.
Jak zeskrobać informacje ze strony internetowej za pomocą VBA?
Załóżmy, że day trader chce codziennie uzyskiwać dostęp do danych ze strony internetowej. Za każdym razem, gdy daytrader naciśnie przycisk „kliknij”, powinien automatycznie pobrać dane rynkowe do programu Excel.
Na powyższej stronie internetowej konieczne byłoby sprawdzenie elementu i zaobserwowanie struktury danych.
Krok 1) Uzyskaj dostęp do poniższego kodu źródłowego HTML, naciskając Ctrl + 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 wyglądałby następująco: –
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
Jak widać, dane mają strukturę pojedynczej tabeli HTML. Zatem, aby wyciągnąć całe dane z tabeli HTML, należałoby zaprojektować makro zbierające dane w postaci kolekcji.
Zbiór zostanie następnie wklejony do programu Excel. Aby osiągnąć pożądane rezultaty, należy wykonać 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 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")
Krok 4) Zainicjuj komórki arkusza Excela za pomocą zagnieżdżonej pętli, jak pokazano
Moduł VBA wyglądałby następująco: –
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")
Excel może zostać zainicjowany za pomocą atrybutu range arkusza Excel lub za pomocą atrybutu cells 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 będzie gotowy, przekaż i przypisz podprogram do przycisku Excela i wyjdź z modułu VBA. Oznacz przycisk jako odświeżający lub dowolną odpowiednią nazwę, którą można mu nadać. W tym przykładzie przycisk jest inicjowany jako odświeżenie.
Krok 5) Naciśnij przycisk odświeżania, aby uzyskać poniższe dane wyjściowe
Krok 6) Porównaj wyniki w Excelu z wynikami w Internet Explorerze
Podsumowanie
- Skrobanie danych pozwala użytkownikowi usunąć tylko te informacje, których potrzebuje. Aby znaleźć najlepsze narzędzia do tego celu, spójrz na tę listę narzędzi do skrobania sieci, które mogą pomóc Ci skutecznie wyodrębnić pożądane informacje z różnych stron internetowych.
- Skrobanie można wykonać za pomocą przeglądarki Internet Explorer.
- Proces skrobania jest wolniejszy w przypadku przeglądarki Internet Explorer; zapewnia jednak użytkownikowi pożądane rezultaty.
- Skrobanie należy wykonywać z zachowaniem całkowitej ostrożności i ostrożności, ponieważ może to spowodować uszkodzenie i awarię systemu używanego do skrobania.