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.
Langkah 2) Pilih opsi Visual Basic di bawah pita Pengembang.
Langkah 3) Masukkan modul baru.
Langkah 4) Inisialisasi subrutin baru dan beri nama test2.
Sub test2() End sub
Berikut ini adalah hasil dalam modul: –
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.
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: –
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: –
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
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: –
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.
Langkah 4) Tekan tombol segarkan untuk mendapatkan keluaran yang disebutkan di bawah
Langkah 5) Bandingkan hasil di excel dengan hasil di google chrome
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.