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.

Przygotuj makro programu Excel przed wykonaniem skrobania danych przy użyciu przeglądarki Internet Explorer

Krok 2) Wybierz opcję Visual Basic na wstążce Deweloper.

Przygotuj makro programu Excel przed wykonaniem skrobania danych przy użyciu przeglądarki Internet Explorer

Krok 3) Włóż nowy moduł.

Przygotuj makro programu Excel przed wykonaniem skrobania danych przy użyciu przeglądarki Internet Explorer

Krok 4) Zainicjuj nowy podprogram

Sub test()
End sub

Wynik modułu będzie następujący: –

Przygotuj makro programu Excel przed wykonaniem skrobania danych przy użyciu przeglądarki Internet Explorer

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.

Przygotuj makro programu Excel przed wykonaniem skrobania danych przy użyciu przeglądarki Internet Explorer

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: –

Otwórz przeglądarkę Internet Explorer za pomocą Excel VBA

Otwórz przeglądarkę Internet Explorer za pomocą Excel VBA

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

Otwórz witrynę w przeglądarce Internet Explorer przy użyciu języka VBA

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.

Zeskrob informacje ze strony internetowej za pomocą języka VBA

Krok 5) Naciśnij przycisk odświeżania, aby uzyskać poniższe dane wyjściowe

Zeskrob informacje ze strony internetowej za pomocą języka VBA

Krok 6) Porównaj wyniki w Excelu z wynikami w Internet Explorerze

Zeskrob informacje ze strony internetowej za pomocą języka VBA

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.