VBA Web Scraping - Jak pozbywać się stron internetowych za pomocą Excel VBA?

Przeszukiwanie sieci Excel VBA

VBA Web Scraping to technika uzyskiwania dostępu do stron internetowych i pobierania danych z tej witryny do naszych plików komputerowych. Skrobanie sieci Web jest możliwe dzięki dostępowi do aplikacji zewnętrznych, takich jak Internet Explorer. Możemy to zrobić na dwa sposoby, tj. Early Binding i Late Binding.

Web Scraping z VBA oznacza, że ​​kiedy używamy VBA do pobierania danych z innych źródeł w sieci, może to wymagać logowania do źródeł danych, ale najpierw, aby to zrobić, musimy włączyć odwołania z sekcji narzędzi w edytor VBA dla biblioteki Microsoft HTML w celu uzyskania dostępu do sieci z VBA.

Niewielu z nas wie, że z programu Excel możemy uzyskać dostęp do stron internetowych i uzyskać dane z tych stron. Tak, dobrze słyszałeś. możemy przeglądać strony internetowe, uzyskiwać dostęp do aplikacji do przeglądania i wiele innych. W tym artykule pokażemy, jak szczegółowo napisać kod VBA Excel do skrobania stron internetowych.

Zwykle otwieramy strony internetowe, kopiujemy dane i wklejamy je do naszych plików, takich jak Excel, Word lub inne pliki. Ale w tym artykule pokażemy, jak uzyskać dostęp do witryn internetowych z programu Excel i robić wiele innych rzeczy.

Jak pozbyć się danych witryny za pomocą VBA?

Gdy chcemy uzyskać dostęp do innych aplikacji z programu Excel, możemy to zrobić na różne sposoby, np. „Wczesne wiązanie” i „Późne wiązanie”. Na początkowym etapie zawsze bezpiecznie jest skorzystać z techniki „Early Binding”.

Aby uzyskać dostęp do witryny, potrzebujemy aplikacji do przeglądania, na przykład „ Internet Explorer ”. Ponieważ jest to obiekt zewnętrzny, musimy najpierw ustawić odniesienie.

Postępuj zgodnie z poniższymi krokami, aby notować z sieci.

Krok 1: Zdefiniuj zmienną VBA i przypisz typ danych jako „ Internet Explorer ”.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As internet End Sub

Jak widać powyżej, kiedy próbujemy ustawić odniesienie do przeglądarki Internet Explorer, nie widzimy „Internet Explorera”, ponieważ „Internet Explorer” jest obiektem zewnętrznym, więc musimy ustawić odniesienie.

Krok 2: Aby ustawić odniesienie, przejdź do „ Narzędzia ” i wybierz „ Referencje ”.

W poniższym oknie przewiń w dół i wybierz „ Microsoft Internet Controls ”.

Krok 3: Zaznacz pole „Microsoft Internet Controls” i kliknij OK. Teraz powinniśmy zobaczyć tę nazwę obiektu na liście IntelliSense.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As inter End Sub

Krok 4: Wybierz „InternetExplorer”.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer End Sub

Krok 5: Następnie musimy ustawić odniesienie, aby włączyć Internet Explorer. Ponieważ jest to zmienna obiektowa, musimy użyć słowa kluczowego „ Set ”, aby ustawić odniesienia.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Ustaw Internet_Explorer = New InternetExplorer End Sub

Krok 6: Teraz, używając zmiennej „ Internet_Explorer ”, możemy użyć właściwości i metod programu Internet Explorer.

Wprowadź nazwę zmiennej i umieść kropkę, aby wyświetlić listę IntelliSense.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Ustaw Internet_Explorer = New InternetExplorer Internet_Explorer. Napis końcowy

Krok 7: Teraz, aby wyświetlić aplikację Internet Explorer, musimy wybrać właściwość „ Visible ” i ustawić status na „ True ”.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Ustaw Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True End Sub

Teraz uruchom kod, a na Twoim komputerze powinien zostać otwarty Internet Explorer .

Krok 8: Ponieważ nie wymieniono żadnego adresu internetowego, widzimy tylko pustą stronę. Aby nadać Internet Explorer adres internetowy, potrzebujemy metody „ Nawigacja ”.

Kod:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Ustaw Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub

Step 9: As you can see above “Navigation” method asking which URL to be navigated in internet explorer. Now I need to open the website “Wallstreetnmojo,” and I can give the URL address as follows. “https://www.wallstreetmojo.com/”

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") End Sub

Now run the code, we should see the mentioned web address page in internet explorer.

Here we have a problem that once the web page is opened, our code needs to wait until the page web page fully opened.

Step 10: We need to use the “Do While” loop in VBA to actually wait for our code to go any further until the mentioned page is fully loaded.

So, add below the “Do While” loop to force the macro to wait until the mentioned web page comes to the “Ready State Complete” mode.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop End Sub

Step 11: Now, let’s try to get information about the website in a single line. To get the information about the mentioned web address information, we need to use the “Location Name” property.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName End Sub

Run the code, and in the message box, we would get the information about the website.

Step 12: Now, at the bottom, we can also print website addresses as well.

Code:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Ustaw Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState Internet_Explorer.ReadyState READYSTE_BOMPlokalizacja: & Internet_Explorer.LocationURL End Sub

Teraz to powie o opisie strony internetowej, a także pokaże adres strony internetowej.

O czym należy pamiętać

  • Skrobanie sieci Web jest możliwe dzięki dostępowi do aplikacji zewnętrznych, takich jak Internet Explorer.
  • Możemy to zrobić na dwa sposoby, tj. Early Binding i Late Binding. W przypadku wczesnego wiązania możemy wyświetlić listę IntelliSense, ale w przypadku późnego wiązania nie możemy w ogóle wyświetlić listy IntelliSense.

Interesujące artykuły...