Skrobanie stron internetowych za pomocą VBA

Spisie treści:

Anonim

Co to jest skrobanie danych?

Skrobanie danych to technika, która pomaga w wyodrębnieniu żądanych informacji ze strony internetowej HTML do pliku lokalnego znajdującego się na komputerze lokalnym. Zwykle plik lokalny może odpowiadać plikowi programu Excel, plikowi Word lub, powiedzmy, dowolnej aplikacji biurowej Microsoft. Pomaga w przekazywaniu krytycznych informacji ze strony internetowej.

Skrobanie danych staje się proste podczas codziennej pracy nad projektem badawczym, a taki projekt jest całkowicie zależny od Internetu i strony internetowej. Aby lepiej zilustrować ten temat, weźmy przykład day tradera, który uruchamia makro Excela do pobierania informacji rynkowych z witryny finansowej do arkusza Excela za pomocą VBA.

W tym samouczku dowiesz się:

  • Co to jest skrobanie danych?
  • Jak przygotować makro Excela przed skrobaniem danych za pomocą przeglądarki Internet Explorer?
  • Jak otworzyć Internet Explorera za pomocą Excel VBA?
  • Jak otworzyć witrynę internetową w przeglądarce Internet Explorer za pomocą VBA?
  • Jak pobrać informacje ze strony internetowej za pomocą VBA?

Jak przygotować makro Excela przed skrobaniem danych za pomocą przeglądarki Internet Explorer?

Istnieją pewne warunki wstępne, które należy spełnić na pliku makr programu Excel przed przystąpieniem do procesu pobierania danych w programie Excel.

Te warunki 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 na wstążce dewelopera.

Krok 3) Włóż nowy moduł.

Krok 4) Zainicjuj nowy podprogram

Sub test()End sub

Wynik modułu byłby następujący: -

Krok 5) Uzyskaj dostęp do opcji odniesienia na karcie narzędzi i odwołaj się do biblioteki obiektów Microsoft HTML i kontroli internetowej firmy Microsoft.

Do modułu należy odnosić się do następujących plików, ponieważ pomaga on w otwieraniu programu Internet Explorer i ułatwia tworzenie skryptów makr.

Teraz plik Excel jest gotowy do interakcji z przeglądarką internetową. Następnym krokiem byłoby włączenie skryptów makr, które ułatwiłyby pobieranie danych w HTML.

Jak otworzyć Internet Explorera za pomocą Excel VBA?

Krok 1) Zainicjuj zmienną w podprogramach, jak pokazano poniżej

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Krok 2) Aby otworzyć przeglądarkę internetową za pomocą VBA, napisz tj. Visible = true i naciśnij F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Moduł wyglądałby następująco: -

Jak otworzyć witrynę internetową w przeglądarce Internet Explorer za pomocą VBA?

Oto kroki, aby otworzyć witrynę internetową w programie wykorzystującym przeglądarkę internetową przy użyciu języka VBA

Krok 1) Po uzyskaniu dostępu do przeglądarki internetowej za pomocą Excel VBA, następnym krokiem będzie dostęp do witryny internetowej za pomocą VBA. Ułatwia to Navigate Attribute, w której adres URL musi być przekazywany jako podwójne cudzysłowy w atrybucie. Postępuj zgodnie z wyświetlanymi instrukcjami.

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 klawisz F5, aby wykonać makro. Następująca strona internetowa zostanie otwarta w wyświetlonej postaci

Teraz makro programu Excel jest gotowe do wykonywania funkcji skrobania. Następnym krokiem będzie pokazanie, jak można wyodrębnić informacje z przeglądarki Internet Explorer za pomocą VBA.

Jak pobrać 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 day trader naciśnie przycisk, powinien automatycznie pobrać dane rynkowe do programu Excel.

Z powyższej strony należałoby dokonać inspekcji elementu i zaobserwować, jak skonstruowane są dane.

Krok 1) Uzyskaj dostęp do poniższego kodu źródłowego HTML, naciskając Ctrl + Shift + I.

Kod źródłowy 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.document

Jak widać, dane są zorganizowane jako pojedyncza tabela HTML. Dlatego, aby wyciągnąć całe dane z tabeli html, wymagałoby zaprojektowania makra, które zbiera dane w postaci kolekcji.

Kolekcja zostanie następnie wklejona do programu Excel. Aby osiągnąć pożądane rezultaty, wykonaj poniższe czynności: -

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 programu 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")

Program Excel można zainicjować za pomocą atrybutu zakresu arkusza programu Excel lub atrybutu komórek arkusza programu Excel. Aby zmniejszyć złożoność skryptu VBA, dane kolekcji są inicjowane w atrybucie komórek programu Excel z arkusza 1, który znajduje się w skoroszycie.

Gdy skrypt makra będzie gotowy, przekaż i przypisz podprogram do przycisku programu Excel i wyjdź z modułu VBA. Oznacz przycisk jako odświeżanie lub dowolną odpowiednią nazwę, która może zostać dla niego zainicjowana. W tym przykładzie przycisk jest inicjowany jako odświeżenie.

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

Krok 6) Porównaj wyniki w programie Excel z wynikami w przeglądarce Internet Explorer

Podsumowanie:

  • Skrobanie danych pozwala użytkownikowi wydobyć tylko te informacje, których chce użytkownik.
  • Skrobanie można wykonać za pomocą przeglądarki Internet Explorer.
  • W przypadku przeglądarki Internet Explorer proces skrobania jest wolniejszy; jednakże zapewnia użytkownikowi pożądane rezultaty.
  • Skrobanie powinno być wykonywane z absolutną ostrożnością i ostrożnością, ponieważ może to spowodować uszkodzenie i awarię systemu używanego do skrobania.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change