VBA ile Web Kazıma

Veri kazıma, istenen bilgilerin bir HTML web sayfasından yerel makinenizde bulunan yerel bir dosyaya çıkarılmasına yardımcı olan bir tekniktir. Normalde, yerel bir dosya bir excel dosyasına, word dosyasına veya herhangi bir Microsoft ofis uygulamasına karşılık gelebilir. Web sayfasından kritik bilgilerin kanalize edilmesine yardımcı olur.

Günlük bazda araştırmaya dayalı bir proje üzerinde çalışırken veri kazıma basit hale gelir ve böyle bir proje tamamen internete ve web sitesine bağlıdır. Konuyu daha fazla açıklamak için, bir finans web sitesinden piyasa bilgilerini VBA kullanarak bir excel sayfasına çekmek için bir excel makrosu çalıştıran bir günlük tüccar örneğini ele alalım.

Internet Explorer kullanarak Veri Kazıma yapmadan önce Excel Makrosunu nasıl hazırlayabilirim?

Excel’de veri kazıma sürecine girmeden önce, excel makro dosyasında gerçekleştirilmesi gereken bazı önkoşullar vardır.

Bu ön koşullar aşağıdaki gibidir: –

Adım 1) Excel tabanlı bir Makro açın ve excel’in geliştirici seçeneğine erişin.

Adım 2) Geliştirici şeridi altında Visual Basic seçeneğini seçin.

Adım 3) Yeni bir modül takın.

Adım 4) Yeni bir alt rutini başlatın

Alt test ()
Alt

Modül şu şekilde sonuçlanacaktır: –

Adım 5) Araç sekmesinin altındaki referans seçeneğine erişin ve Microsoft HTML Nesne Kitaplığı ve Microsoft internet kontrolüne bakın.

Aşağıdaki dosyalar, internet explorer’ı açmaya yardımcı olduğu ve makro komut dosyası geliştirmeyi kolaylaştırdığı için modüle atıfta bulunulacaktır.

Artık Excel dosyası internet gezgini ile etkileşime girmeye hazır. Bir sonraki adım, HTML’de veri kazımayı kolaylaştıracak makro komut dosyalarını dahil etmek olacaktır.

Excel VBA kullanarak Internet Explorer Nasıl Açılır?

Adım 1) Değişkeni alt yordamlarda aşağıda gösterildiği gibi başlatın

Alt test ()
Dim ie As New InternetExplorer 
Dim doc Yeni HTMLDocument Olarak

Adım 2) VBA kullanarak internet explorer’ı açmak için, ie visible = true yazın ve F5 tuşuna basın .

Alt test ()
Dim ie As New InternetExplorer 
Dim doc Yeni HTMLDocument Olarak
Ie.visible = true

Modül aşağıdaki gibi görünecektir: –

VBA kullanarak İnternet Explorer’da Web Sitesi Nasıl Açılır?

İşte, VBA kullanarak İnternet istismarında Web Sitesini Açma adımları

Adım 1) Excel VBA kullanarak internet explorer’a erişebildiğinizde, bir sonraki adım VBA kullanarak bir web sitesine erişimi içerecektir. Bu, Navigate Niteliği ile kolaylaştırılmıştır; burada URL, öznitelikte çift tırnak olarak geçmelidir. Aşağıdaki adımları gösterildiği gibi izleyin.

Alt test ()
Dim, yani Yeni İnternet Gezgini Olarak
Dim doc Yeni HTMLDocument Olarak
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Yapmak
DoEvents
İe.readyState'e Kadar Döngü = READYSTATE_COMPLETE

Adım 2) – Makroyu yürütmek için F5’e basın. Aşağıdaki web sayfası görüntülendiği gibi açılacaktır

Artık excel makrosu, kazıma fonksiyonlarının gerçekleştirilmesi açısından hazırdır. Bir sonraki adım, bilgilerin VBA kullanılarak internet explorer’dan nasıl çıkarılabileceğini gösterecektir.

VBA kullanarak Web sitesinden bilgi nasıl kazınılır?

Günlük tüccarın web sitesindeki verilere günlük olarak erişmek istediğini varsayalım. Günlük tüccar düğmeye her bastığında, piyasa verilerini otomatik olarak excel’e çekmelidir.

Yukarıdaki web sitesinden, bir öğeyi incelemek ve verilerin nasıl yapılandırıldığını gözlemlemek gerekecektir.

Adım 1) Ctrl + Shift + I tuşlarına basarak aşağıdaki HTML kaynak koduna erişin

<table class = "datatable">
<thead>
<tr>
<th> Şirket </th>
<th> Grup </th>
<th> Ön Kapatma (Rs) </th>
<th> Mevcut Fiyat (Rs) </th>
<th> Değişim Yüzdesi </th>
</tr>

Kaynak kodu aşağıdaki gibi olacaktır: –

Alt test ()
Dim ie As New InternetExplorer
Dim doc Yeni HTMLDocument Olarak
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Yapmak
DoEvents
İe.readyState'e Kadar Döngü = READYSTATE_COMPLETE
Doc = ie.document olarak ayarlayın

Görüldüğü gibi veriler tek bir HTML Tablosu olarak yapılandırılmıştır. Bu nedenle, html tablosundan tüm veriyi çekmek için, verileri bir koleksiyon şeklinde toplayan makronun tasarlanması gerekecektir.

Koleksiyon daha sonra excel’e yapıştırılır. İstenen sonuçları elde etmek için aşağıda belirtilen adımları gerçekleştirin: –

Adım 2) Alt programdaki Html belgesini başlatın

VBA modülü aşağıdaki gibi görünecektir: –

Adım 3) HTML belgesinde bulunan koleksiyon öğesini başlatın

VBA modülü aşağıdaki gibi görünecektir: –

Alt test ()
Dim ie As New InternetExplorer
Dim doc Yeni HTMLDocument Olarak
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Yapmak
DoEvents
İe.readyState'e Kadar Döngü = READYSTATE_COMPLETE
Doc = ie.document olarak ayarlayın
Ecoll = doc.getElementsByTagName ("tablo") olarak ayarlayın

Adım 4) Gösterildiği gibi iç içe döngü yardımıyla excel sayfa hücrelerini başlatın

VBA modülü aşağıdaki gibi görünecektir: –

Alt test ()
Dim ie As New InternetExplorer
Dim doc Yeni HTMLDocument Olarak
Dim ecoll As Object

ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Yapmak
DoEvents
İe.readyState'e Kadar Döngü = READYSTATE_COMPLETE
Doc = ie.document olarak ayarlayın
Ecoll = doc.getElementsByTagName ("tablo") olarak ayarlayın

Excel, excel sayfasının aralık özelliği kullanılarak veya excel sayfasının hücreler özelliği aracılığıyla başlatılabilir. VBA komut dosyasının karmaşıklığını azaltmak için, toplama verileri çalışma kitabında bulunan 1. sayfadaki excel hücreleri özniteliğiyle başlatılır.

Makro komut dosyası hazır olduğunda, alt rutini excel düğmesine geçirin ve atayın ve VBA modülünden çıkın. Düğmeyi yenileme veya başlangıç ​​durumuna getirilebilecek herhangi bir uygun ad olarak etiketleyin. Bu örnek için düğme, yenileme olarak başlatılmıştır.

Adım 5) Aşağıda belirtilen çıktıyı almak için yenile düğmesine basın

Adım 6) Excel’deki sonuçları internet explorer’ın sonuçlarıyla karşılaştırın

Özet:

  • Veri kazıma, kullanıcının yalnızca kullanıcının istediği bilgileri kazımasına izin verir.
  • Kazıma, internet explorer kullanılarak yapılabilir.
  • İnternet gezgini durumunda kazıma süreci daha yavaştır; ancak istenen sonuçları kullanıcıya sunar.
  • Kazıma için kullanılan sisteme zarar verebileceğinden ve çarpabileceğinden, kazıma işlemi çok dikkatli ve dikkatli yapılmalıdır.