VBA Web Kazıma | Excel VBA kullanarak Web Siteleri Nasıl Çıkartılır?

Excel VBA Web Kazıma

VBA Web Scraping , web sayfalarına erişme ve verileri bu web sitesinden bilgisayar dosyalarımıza indirme tekniğidir. Web kazıma, Internet Explorer gibi harici uygulamalara erişilerek mümkündür. Bunu iki şekilde yapabiliriz, yani Erken Bağlama ve Geç Bağlama.

VBA ile Web Kazıma, verileri web üzerindeki diğer kaynaklardan almak için VBA kullandığımızda, bu veri kaynakları için oturum açmayı gerektirebilir, ancak önce bunu yapmak için, içindeki araçlar bölümündeki referansları etkinleştirmemiz gerekir. Web'e VBA'dan erişmek için Microsoft HTML kitaplığı için VBA düzenleyicisi.

Çoğumuz, excel'den web sayfalarına erişebileceğimizi ve bu web sayfalarından verileri alabileceğimizi bilmiyoruz. Evet, doğru duydunuz. web sayfalarını kazıyabilir, tarama uygulamalarına erişebilir ve daha pek çok şey yapabiliriz. Bu yazıda, web kazıma için bir excel VBA kodunu nasıl yazacağınızı ayrıntılı olarak göstereceğiz.

Genellikle web sayfalarını açar, verileri kopyalar ve excel, word veya diğer bazı dosyalar gibi dosyalarımıza yapıştırırız. Ancak bu yazıda size excel'den web sitelerine nasıl erişeceğinizi ve diğer birçok şeyi nasıl yapacağınızı göstereceğiz.

VBA kullanarak Web Sitesi Verileri Nasıl Kesilir?

Bu VBA Web Kazıma Excel Şablonunu buradan indirebilirsiniz - VBA Web Kazıma Excel Şablonu

Excel'den başka uygulamalara erişmek istediğimizde, bunu "Erken Bağlama" ve "Geç Bağlama" gibi şekillerde yapabiliriz. Başlangıç ​​aşamasında, "Erken Ciltleme" tekniğini kullanmak her zaman güvenlidir.

Web sitesine erişmek için, örneğin " Internet Explorer " gibi tarayıcı uygulamalarına ihtiyacımız var . Harici bir nesne olduğu için önce referansı ayarlamamız gerekir.

Not almak için aşağıdaki adımları izleyin.

Adım 1: VBA değişkenini tanımlayın ve veri tipini “ Internet Explorer ” olarak atayın .

Kod:

 Sub Web_Scraping () Dim Internet_Explorer As internet End Sub 

Yukarıda görebileceğiniz gibi, Internet Explorer'a referansı ayarlamaya çalıştığımızda "Internet Explorer" ı görmüyoruz, bunun nedeni "Internet Explorer" ın harici bir nesne olması, dolayısıyla referansı ayarlamamız gerekmesidir.

Adım 2: Referansı ayarlamak için " Araçlar " a gidin ve " Referanslar " ı seçin .

Aşağıdaki pencerede aşağı kaydırın ve " Microsoft İnternet Kontrolleri " ni seçin.

Adım 3: “Microsoft İnternet Kontrolleri” kutusunu işaretleyin ve Tamam'a tıklayın. Şimdi bu nesne adını IntelliSense listesinde görmeliyiz.

Kod:

 Sub Web_Scraping () Dim Internet_Explorer As inter End Sub 

Adım 4: "InternetExplorer" ı seçin.

Kod:

 Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer End Sub 

Adım 5: Ardından, Internet Explorer'ı etkinleştirmek için referansı ayarlamamız gerekiyor. Bu bir nesne değişkeni olduğundan , referansları ayarlamak için " Set " anahtar sözcüğünü kullanmamız gerekir .

Kod:

 Sub Web_Scraping () Dim Internet_Explorer'ı InternetExplorer Olarak Ayarla Internet_Explorer = Yeni InternetExplorer End Sub 

Adım 6: Şimdi “ Internet_Explorer ” değişkenini kullanarak internet explorer'ın özelliklerini ve yöntemlerini kullanabiliriz.

Değişken adını girin ve IntelliSense listesini görmek için bir nokta koyun.

Kod:

Sub Web_Scraping () Dim Internet_Explorer'ı InternetExplorer Olarak Ayarla Internet_Explorer = Yeni InternetExplorer Internet_Explorer'ı ayarlayın. Sub

Adım 7: Şimdi internet explorer uygulamasını görüntülemek için, " Görünür " özelliği seçmemiz ve durumu " Doğru " olarak ayarlamamız gerekiyor .

Kod:

 Sub Web_Scraping () Dim Internet_Explorer, InternetExplorer Olarak Ayarla Internet_Explorer = Yeni InternetExplorer Internet_Explorer.Visible = True End Sub 

Şimdi kodu çalıştırın ve bilgisayarınızda bir Internet Explorer'ın açıldığını görmelisiniz .

8. Adım: Web adresi belirtilmediğinden, yalnızca boş bir sayfa görebiliriz. İnternet explorer'a web adresini vermek için “ Navigasyon ” yöntemine ihtiyacımız var .

Kod:

 Sub Web_Scraping () Dim Internet_Explorer'ı InternetExplorer Olarak Ayarla Internet_Explorer = Yeni InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub 

Adım 9: Yukarıda görebileceğiniz gibi, internet explorer'da hangi URL'nin gezinileceğini soran “Gezinme” yöntemi. Şimdi “ Wallstreetnmojo ” web sitesini açmam gerekiyor ve URL adresini aşağıdaki gibi verebilirim. "//Www.wallstreetmojo.com/"

Kod:

 Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//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 ("//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 ("//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 Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState  READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName & vbNewLine & vbNewLine & Internet_Explorer.LocationURL End Sub 

Now this will tell about the website description and also shows the website address as well.

Things to Remember here

  • Web scraping is possible by accessing external applications like Internet Explorer.
  • We can do it in two ways i.e. Early Binding & Late Binding. With Early Binding, we can get to see the IntelliSense list but with late binding, we cannot get to see the IntelliSense list at all.