Selenium Tutorial VBA Excel: Contoh Scraping Web Chrome

Apa itu Data Scraping menggunakan Selenium?

Selenium dapat digolongkan sebagai alat otomatisasi yang memfasilitasi pengikisan informasi dari halaman web HTML untuk melakukan pengikisan web dengan memanfaatkan Google Chrome.

Bagaimana mempersiapkan Excel Macro sebelum melakukan Data Scraping menggunakan Selenium?

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

Prasyarat tersebut adalah sebagai berikut: –

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

Mempersiapkan Makro Excel Sebelum Melakukan Scraping Data

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

Mempersiapkan Makro Excel Sebelum Melakukan Scraping Data

Langkah 3) Masukkan modul baru.

Mempersiapkan Makro Excel Sebelum Melakukan Scraping Data

Langkah 4) Inisialisasi subrutin baru dan beri nama test2.

Sub test2()
End sub

Berikut ini adalah hasil dalam modul: –

Mempersiapkan Makro Excel Sebelum Melakukan Scraping Data

Langkah 5) Akses opsi referensi di bawah tab alat dan referensi Selenium pustaka tipe. Pustaka berikut ini harus dirujuk ke modul karena membantu dalam membuka Google Chrome dan memfasilitasi pengembangan skrip makro.

Mempersiapkan Makro Excel Sebelum Melakukan Scraping Data

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

Bagaimana cara membuka Google Chrome menggunakan VBA?

Di sini, adalah langkah untuk membuka Google Chrome menggunakan VBA

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

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer

Langkah 2) Untuk membuka google chrome menggunakan Selenium dan VBA, tulis driver.start “chrome” dan tekan F5.

Berikut ini adalah kodenya.

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Application.Wait Now+Timevalue("00:00:20")
End sub

Modul akan menghasilkan sebagai berikut: –

Open Google Chrome Menggunakan VBA

Bagaimana Cara Membuka Situs Web di Google chrome menggunakan VBA?

Setelah Anda dapat mengakses Google Chrome menggunakan VBA, langkah selanjutnya adalah menggabungkan akses ke situs web menggunakan VBA. Hal ini difasilitasi oleh fungsi get yang mana URL harus ditulis sebagai tanda kutip ganda dalam atribut.

Ikuti langkah-langkah berikut seperti yang ditampilkan

Modulnya akan terlihat sebagai berikut: –

Buka Situs Web Di Google Chrome Menggunakan VBA

Tekan F5 untuk menjalankan makro.

Halaman web berikut akan dibuka di Google Chrome seperti yang ditampilkan

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Driver.get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now+Timevalue("00:00:20")
End sub

Buka Situs Web Di Google Chrome Menggunakan VBA

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

Bagaimana cara mengikis informasi dari situs web menggunakan VBA?

Misalkan day trader ingin mengakses data dari situs web setiap hari. Setiap kali trader harian menekan tombol klik, data pasar akan ditarik secara otomatis ke dalam excel.

Dari website di atas, perlu dilakukan pemeriksaan suatu elemen dan mengamati bagaimana data disusun. Akses kode sumber HTML di bawah ini dengan menekan control + Shift + Saya

<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>

Kode sumbernya adalah sebagai berikut: –

Seperti yang dapat dilihat bahwa data tersebut terstruktur sebagai satu Tabel HTML. Oleh karena itu, untuk menarik seluruh data dari tabel HTML, diperlukan perancangan makro yang menarik informasi tajuk 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 tabel HTML. Untuk melakukan ini, kami menggunakan metode FindElementByClass() dan FindElementByTag() untuk melakukan tugas seperti yang ditampilkan

Modul VBA akan terlihat seperti berikut: –

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

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

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

Modul vba akan terlihat seperti berikut: –

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

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

Modul vba akan terlihat seperti berikut: –

Mengikis Informasi Dari Situs Web Menggunakan VBA

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

Mengikis Informasi Dari Situs Web Menggunakan VBA

Langkah 4) Tekan tombol segarkan untuk mendapatkan keluaran yang disebutkan di bawah

Mengikis Informasi Dari Situs Web Menggunakan VBA

Langkah 5) Bandingkan hasil di excel dengan hasil di google chrome

Mengikis Informasi Dari Situs Web Menggunakan VBA

Ringkasan

  • Selenium dapat digolongkan sebagai alat otomatisasi yang memfasilitasi pengikisan informasi dari halaman web HTML untuk melakukan pengikisan web dengan memanfaatkan Google Chrome.
  • Pengikisan di internet harus dilakukan dengan hati-hati.
  • Biasanya melanggar ketentuan situs web untuk mengumpulkan informasi.
  • Ketika pengikisan dilakukan melalui Selenium, maka ia menawarkan dukungan banyak browser.
  • Dengan kata lain, scraper dapat melakukan tugas serupa yaitu mengikis Firefox, penjelajah internet juga.

Buletin Harian Guru99

Awali hari Anda dengan berita AI terbaru dan terpenting yang disampaikan saat ini.