VBA ile Web Kazıma

İçindekiler:

Anonim

Veri Kazıma nedir?

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 olarak 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.

Bu eğitimde şunları öğreneceksiniz:

  • Veri Kazıma nedir?
  • Internet Explorer kullanarak Veri Kazıma yapmadan önce Excel Makrosunu nasıl hazırlayabilirim?
  • Excel VBA kullanarak Internet Explorer Nasıl Açılır?
  • VBA kullanarak İnternet Explorer'da Web Sitesi Nasıl Açılır?
  • VBA kullanarak Web sitesindeki bilgileri nasıl kazıyabilirim?

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 programı başlatın

Sub test()End sub

Modül şu şekilde sonuçlanı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

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

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.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örüntülendiği gibi izleyin.

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

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 işlevlerinin 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 sitesindeki bilgileri nasıl kazıyabilirim?

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

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

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

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ı gerekir.

Koleksiyon daha sonra excel'e yapıştırılır. İstenilen 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: -

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

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

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

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. sayfanın excel hücreleri özniteliğiyle başlatılır.

Makro betiği 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.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change