Selenyum, google chrome kullanarak web kazıma gerçekleştirmek için HTML web sayfalarından bilgilerin alınmasını kolaylaştıran otomasyon aracı olarak sınıflandırılabilir.
Bu eğitimde şunları öğreneceksiniz:
Selenyum kullanarak Veri Kazıma nedir?
Selenium kullanarak Veri Kazıma yapmadan önce Excel Makrosu nasıl hazırlanır?
VBA kullanarak Google Chrome Nasıl Açılır?
VBA kullanarak Google Chrome'da Web Sitesi Nasıl Açılır?
VBA kullanarak Web sitesindeki bilgileri nasıl kazıyabilirim?
Selenium kullanarak Veri Kazıma yapmadan önce Excel Makrosu nasıl hazırlanır?
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 ve bunu test2 olarak adlandırın.
Alt test2 ()Alt
Modüldeki sonuçlar aşağıdadır: -
Adım 5) Araç sekmesi altındaki referans seçeneğine erişin ve Selenium tipi kitaplığına bakın. Aşağıdaki kitaplıklar, google chrome'u 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. Sonraki adımlar, HTML'de veri kazımayı kolaylaştıracak bir makro komut dosyası eklemek olacaktır.
VBA kullanarak Google Chrome Nasıl Açılır?
İşte, VBA kullanarak Google Chrome'u açma adımları
Adım 1) Alt yordamdaki değişkenleri aşağıda gösterildiği gibi bildirin ve başlatın
Alt test2 ()Sürücüyü yeni web sürücüsü olarak karartınTamsayı olarak dim rowc, cc, columnC
Adım 2) Selenyum ve VBA kullanarak google chrome'u açmak için, driver.start "chrome" yazın ve F5'e basın .
Aşağıdaki kod olacaktır.
Alt test2 ()Sürücüyü yeni web sürücüsü olarak karartınTamsayı olarak dim rowc, cc, columnCDriver.start "Chrome"Uygulama.Şimdi Bekle + Zaman Değeri ("00:00:20")Alt
Modül şu şekilde sonuçlanır: -
VBA kullanarak Google Chrome'da Web Sitesi Nasıl Açılır?
Google chrome'a VBA kullanarak erişebildiğinizde, bir sonraki adım VBA kullanarak bir web sitesine erişimi dahil etmek olacaktır. Bu, URL'nin öznitelikte çift tırnak olarak geçmesi gereken get işlevi ile kolaylaştırılmıştır.
Aşağıdaki adımları gösterildiği gibi izleyin
Modül aşağıdaki gibi görünecektir: -
Makroyu yürütmek için F5'e basın.
Aşağıdaki web sayfası görüntülendiği gibi google chrome'da açılacaktır
Alt test2 ()Sürücüyü yeni web sürücüsü olarak karartınTamsayı olarak dim rowc, cc, columnCDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Uygulama.Şimdi Bekle + Zaman Değeri ("00:00:20")Alt
Artık excel makrosu, kazıma görevlerinin gerçekleştirilmesi açısından hazırdır. Bir sonraki adım, selenyum ve VBA uygulanarak bilgilerin 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. Ctrl + Shift + I tuşlarına basarak aşağıdaki HTML kaynak koduna erişin
Şirket
Grup
Ön Kapatma (Rs)
Mevcut Fiyat (Rs)
Değişim Yüzdesi
Kaynak kodu aşağıdaki gibi olacaktır: -
Görüldüğü gibi veriler tek bir HTML Tablosu olarak yapılandırılmıştır. Bu nedenle, HTML tablosundan tüm verileri çekmek için, HTML tablosunun başlık bilgisini ve tabloyla ilişkili karşılık gelen verileri çeken makronun tasarlanmasını gerektirecektir. Aşağıdaki görevleri gösterildiği gibi gerçekleştirin: -
Adım 1) Bir koleksiyon olarak HTML başlık bilgileri üzerinden çalışan bir for döngüsü formüle edin. Selenyum sürücüsü, HTML tablosunun başlık bilgisini bulmalıdır. Bunu yapmak için, görevi görüntülendiği gibi gerçekleştirmek için FindElementByClass () ve FindElementByTag () yöntemini kullanıyoruz
VBA modülü aşağıdaki gibi görünecektir: -
Alt test2 ()Sürücüyü Yeni Web Sürücü Olarak KarartınDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Yanlışdriver. "chrome" u başlatındriver.Get "http://demo.guru99.com/test/web-table-element.php"Her th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Her t için th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Sonraki TSonraki
Adım 2) Daha sonra selenyum sürücüsü, yukarıda bahsedildiği gibi benzer bir yaklaşımı kullanarak tablo verilerini bulacaktır. Aşağıdaki kodu yazmalısınız: -
Alt test2 ()Sürücüyü Yeni Web Sürücü Olarak KarartınDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Yanlışdriver. "chrome" u başlatındriver.Get "http://demo.guru99.com/test/web-table-element.php"Her th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Her t için th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Sonraki TSonrakiHer tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Her td In tr.FindElementsByTag ("td") içinSheet2.Cells (rowc, columnC) .Value = td.TextsütunC = sütunC + 1Sonraki tdrowc = rowc + 1Sonraki trApplication.Wait Now + TimeValue ("00:00:20")Aboneliği Sonlandır
Vba modülü aşağıdaki gibi görünecektir: -
Excel, excel sayfasının Aralık özniteliği veya excel sayfasının hücreler özniteliğ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 2. sayfanın excel hücreleri özniteliğiyle başlatılır. Ayrıca, metin niteliği, HTML etiketi altına yerleştirilen metin bilgilerinin alınmasına yardımcı olur.
Alt test2 ()Sürücüyü Yeni Web Sürücü Olarak KarartınDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Yanlışdriver. "chrome" u başlatındriver.Get "http://demo.guru99.com/test/web-table-element.php"Her th In driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Her t için th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Sonraki TSonrakiHer tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Her td In tr.FindElementsByTag ("td") içinSheet2.Cells (rowc, columnC) .Value = td.TextsütunC = sütunC + 1Sonraki tdrowc = rowc + 1Sonraki trApplication.Wait Now + TimeValue ("00:00:20")Aboneliği Sonlandır
Vba modülü aşağıdaki gibi görünecektir: -
Adım 3) Makro betiği hazır olduğunda, alt yordamı excel düğmesine geçirip 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 4) Aşağıda belirtilen çıktıyı almak için yenile düğmesine basın
Adım 5) Excel'deki sonuçları google chrome sonuçlarıyla karşılaştırın
Özet:
Selenyum, google chrome kullanarak web kazıma gerçekleştirmek için HTML web sayfalarından bilgilerin alınmasını kolaylaştıran otomasyon aracı olarak sınıflandırılabilir.
İnternette kazıma dikkatlice yapılmalıdır.
Bilgileri kazımak normalde web sitesinin şartlarına aykırıdır.
Kazıma selenyum ile yapıldığında çoklu tarayıcı desteği sunar.
Başka bir deyişle, kazıyıcı, Firefox, internet explorer aracılığıyla da benzer kazıma görevlerini gerçekleştirebilir.