Menggunakan Excel VBA dan Selenium

Daftar Isi:

Anonim

Apa itu Data Scraping menggunakan selenium?

Selenium dapat diklasifikasikan sebagai alat otomasi yang memfasilitasi penggalian informasi dari halaman web HTML untuk melakukan web scraping menggunakan google chrome.

Dalam tutorial ini, Anda akan mempelajari:

  • Apa itu Data Scraping menggunakan selenium?
  • Bagaimana cara mempersiapkan Makro Excel sebelum melakukan Data Scraping menggunakan Selenium?
  • Bagaimana cara membuka Google Chrome menggunakan VBA?
  • Bagaimana cara Membuka Situs Web di Google chrome menggunakan VBA?
  • Bagaimana cara Mengikis informasi dari Situs web menggunakan VBA?

Bagaimana cara mempersiapkan Makro Excel sebelum melakukan Data Scraping menggunakan Selenium?

Ada prasyarat tertentu yang harus dilakukan pada file makro excel sebelum masuk ke proses scraping data di excel.

Prasyarat tersebut adalah sebagai berikut: -

Langkah 1) Buka Makro berbasis Excel dan akses opsi pengembang excel.

Langkah 2) Pilih opsi Visual Basic di bawah pita Pengembang.

Langkah 3) Masukkan modul baru.

Langkah 4) Inisialisasi subrutin baru dan beri nama sebagai test2.

Sub tes2 ()Akhiri sub

Berikut adalah hasil dalam modul: -

Langkah 5) Akses opsi referensi di bawah tab alat dan referensi perpustakaan tipe Selenium. Pustaka berikut akan dirujuk ke modul karena membantu dalam membuka google chrome dan memfasilitasi pengembangan skrip makro.

Sekarang file Excel siap untuk berinteraksi dengan penjelajah internet. Langkah selanjutnya adalah memasukkan skrip makro yang akan memfasilitasi pengumpulan data dalam HTML.

Bagaimana cara membuka Google Chrome menggunakan VBA?

Berikut langkah-langkah untuk membuka Google Chrome menggunakan VBA

Langkah 1) Deklarasikan dan inisialisasi variabel dalam subrutin seperti yang ditampilkan di bawah ini

Sub tes2 ()Redupkan driver sebagai driver web baruRedupkan rowc, cc, columnC sebagai integer

Langkah 2) Untuk membuka google chrome menggunakan selenium dan VBA, tulis driver. Mulai "chrome" dan tekan F5 .

Berikut ini adalah kodenya.

Sub tes2 ()Redupkan driver sebagai driver web baruRedupkan rowc, cc, columnC sebagai integerDriver.start "Chrome"Application.Tunggu Sekarang + Nilai Waktu ("00:00:20")Akhiri sub

Modul akan menghasilkan sebagai berikut: -

Bagaimana cara Membuka Situs Web di Google chrome menggunakan VBA?

Setelah Anda dapat mengakses google chrome menggunakan VBA, langkah selanjutnya adalah memasukkan pengaksesan situs web menggunakan VBA. Ini difasilitasi oleh fungsi get dimana URL harus dilewatkan sebagai tanda kutip ganda di atribut.

Ikuti langkah-langkah berikut seperti yang ditampilkan

Modul akan terlihat sebagai berikut: -

Tekan F5 untuk menjalankan makro.

Halaman web berikut akan dibuka di google chrome seperti yang ditampilkan

Sub tes2 ()Redupkan driver sebagai driver web baruRedupkan rowc, cc, columnC sebagai integerDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Tunggu Sekarang + Nilai Waktu ("00:00:20")Akhiri sub

Sekarang makro excel sudah siap untuk melakukan tugas scraping. Langkah selanjutnya akan menampilkan bagaimana informasi dapat diekstraksi dengan menerapkan selenium dan VBA.

Bagaimana cara Mengikis informasi dari Situs web menggunakan VBA?

Misalkan pedagang harian ingin mengakses data dari situs web setiap hari. Setiap hari pedagang menekan tombol klik, itu akan secara otomatis menarik data pasar ke dalam excel.

Dari situs web di atas, perlu untuk memeriksa elemen dan mengamati bagaimana data terstruktur. Akses kode sumber HTML di bawah ini dengan menekan control + Shift + I

Kode sumbernya adalah sebagai berikut: -

Seperti terlihat bahwa data disusun sebagai Tabel HTML tunggal. Oleh karena itu, untuk menarik seluruh data dari tabel HTML, diperlukan perancangan makro yang menarik informasi header dari tabel HTML dan data terkait yang terkait dengan tabel tersebut. Lakukan tugas berikut seperti yang ditampilkan: -

Langkah 1) Merumuskan perulangan for yang berjalan melalui informasi header HTML sebagai kumpulan. Driver selenium harus menemukan informasi header dari tabel HTML. Untuk melakukan ini, kami menggunakan metode FindElementByClass () dan FindElementByTag () untuk melakukan tugas seperti yang ditampilkan.

Modul VBA akan terlihat sebagai berikut: -

Sub tes2 ()Redupkan driver Sebagai WebDriver BaruRedupkan rowc, cc, kolomC Sebagai Integerrowc = 2Application.ScreenUpdating = Salahdriver. Mulai "chrome"driver. Dapatkan "http://demo.guru99.com/test/web-table-element.php"Untuk Setiap driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Untuk Setiap t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1SelanjutnyaSelanjutnya th

Langkah 2) Selanjutnya, driver selenium akan mencari data tabel menggunakan pendekatan serupa, seperti yang disebutkan di atas. Anda harus menulis kode berikut: -

Sub tes2 ()Redupkan driver Sebagai WebDriver BaruRedupkan rowc, cc, kolomC Sebagai Integerrowc = 2Application.ScreenUpdating = Salahdriver. Mulai "chrome"driver. Dapatkan "http://demo.guru99.com/test/web-table-element.php"Untuk Setiap driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Untuk Setiap t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1SelanjutnyaSelanjutnya thUntuk Setiap tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolomC = 1Untuk Setiap td In tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextkolomC = kolomC + 1Td berikutnyarowc = rowc + 1Tr berikutnyaApplication.Tunggu Sekarang + TimeValue ("00:00:20")Akhiri Sub

Modul vba akan terlihat sebagai berikut: -

Excel dapat diinisialisasi dengan menggunakan atribut Range pada lembar excel atau melalui atribut sel pada lembar excel. Untuk mengurangi kompleksitas skrip VBA, kumpulan data diinisialisasi ke atribut sel excel dari lembar 2 yang ada di buku kerja. Selanjutnya, atribut teks membantu dalam menempatkan informasi teks di bawah tag HTML.

Sub tes2 ()Redupkan driver Sebagai WebDriver BaruRedupkan rowc, cc, kolomC Sebagai Integerrowc = 2Application.ScreenUpdating = Salahdriver. Mulai "chrome"driver. Dapatkan "http://demo.guru99.com/test/web-table-element.php"Untuk Setiap driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Untuk Setiap t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1SelanjutnyaSelanjutnya thUntuk Setiap tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")kolomC = 1Untuk Setiap td In tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextkolomC = kolomC + 1Td berikutnyarowc = rowc + 1Tr berikutnyaApplication.Tunggu Sekarang + TimeValue ("00:00:20")Akhiri Sub

Modul vba akan terlihat sebagai berikut: -

Langkah 3) Setelah skrip makro siap, teruskan dan tetapkan tombol subrutin ke excel dan keluar dari modul VBA. Beri label tombol sebagai refresh atau nama apa pun yang sesuai yang dapat diinisialisasi padanya. Untuk contoh ini, tombol diinisialisasi sebagai refresh.

Langkah 4) Tekan tombol refresh untuk mendapatkan output yang disebutkan di bawah ini

Langkah 5) Bandingkan hasil di excel dengan hasil google chrome

Ringkasan:

  • Selenium dapat diklasifikasikan sebagai alat otomasi yang memfasilitasi penggalian informasi dari halaman web HTML untuk melakukan web scraping menggunakan google chrome.
  • Pengikisan di internet harus dilakukan dengan hati-hati.
  • Mengikis informasi biasanya melanggar ketentuan situs web.
  • Saat pengikisan dilakukan melalui selenium, maka ia menawarkan banyak dukungan browser.
  • Dengan kata lain, pengikis dapat melakukan tugas serupa untuk mengikis melalui Firefox, juga penjelajah internet.
Perusahaan Grup Pre Close (Rs) Harga Saat Ini (Rs) % Perubahan