Selenium Tutorial VBA Excel (Chrome Web Scrap)ping)
โก Ringkasan Cerdas
Selenium VBA di Excel mengotomatiskan Google Chrome untuk mengambil data dari halaman web HTML, menggunakan Selenium Menggunakan pustaka tipe dan metode WebDriver untuk membuka situs web, menemukan elemen tabel berdasarkan kelas dan tag, serta menulis hasilnya ke dalam sel lembar kerja.

Apa itu Data Scrap?ping Menggunakan Selenium?
Selenium adalah alat otomatisasi yang memfasilitasi scraping informasi dari halaman web HTML, melakukan web scrapingping dengan Google ChromeDi Excel, Selenium Pustaka tipe memungkinkan VBA untuk menjalankan browser sungguhan, bukan mesin Internet Explorer yang sudah usang.
Cara Mempersiapkan Makro Excel Sebelum Pengambilan Dataping Menggunakan Selenium
Ada beberapa prasyarat yang harus dilakukan pada file makro Excel sebelum memulai pengambilan data.ping proses.
Persyaratan-persyaratan tersebut adalah sebagai berikut:
Langkah 1) Buka makro berbasis Excel dan akses opsi Pengembang di 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
Hasil dalam modul tersebut akan sebagai berikut:
Langkah 5) Akses opsi Referensi di bawah tab Alat dan rujuk ke Selenium Pustaka Tipe. Pustaka ini membantu membuka Google Chrome dan memfasilitasi pembuatan skrip makro.
Sekarang file Excel sudah siap untuk berinteraksi dengan browser. Langkah selanjutnya adalah memasukkan skrip makro yang memfasilitasi pengambilan data.ping dalam format HTML.
Bagaimana cara membuka Google Chrome Menggunakan VBA
Berikut langkah-langkah untuk membukanya Google Chrome menggunakan VBA.
Langkah 1) Deklarasikan dan inisialisasi variabel-variabel dalam subrutin seperti yang ditunjukkan di bawah ini.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Langkah 2) Membuka Google Chrome menggunakan Selenium dan VBA, tulis driver.Mulai โ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 tersebut akan menghasilkan hasil sebagai berikut:
Cara Membuka Situs Web di Google Chrome Menggunakan VBA
Setelah Anda dapat mengaksesnya Google Chrome Dengan menggunakan VBA, langkah selanjutnya adalah mengakses situs web menggunakan VBA. Hal ini difasilitasi oleh fungsi Get, di mana URL dilewatkan sebagai tanda kutip ganda.
Modul tersebut akan terlihat seperti berikut:
Tekan F5 untuk menjalankan makro. Halaman web berikut akan terbuka di Google Chrome seperti yang ditunjukkan.
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 scraping.ping tugas. Langkah selanjutnya menunjukkan bagaimana informasi tersebut dapat diekstraksi.tracdengan menerapkan Selenium dan VBA.
Cara Mengambil Informasi dari Situs Web Menggunakan VBA
Misalkan seorang day trader ingin mengakses data dari situs web setiap hari. Setiap kali day trader mengklik tombol, data pasar harus secara otomatis ditarik ke dalam Excel.
Dari situs web di atas, perlu untuk memeriksa sebuah elemen dan mengamati bagaimana data tersebut terstruktur. 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>
Seperti yang Anda lihat, data tersebut terstruktur sebagai satu tabel HTML tunggal. Oleh karena itu, untuk mengambil seluruh data dari tabel HTML, Anda harus mendesain makro yang mengambil informasi header dan data terkait yang berhubungan dengan tabel tersebut. Lakukan tugas-tugas di bawah ini.
Langkah 1) Rumuskan sebuah perulangan For yang berjalan melalui informasi header HTML sebagai sebuah koleksi. Selenium Driver menemukan informasi header menggunakan metode FindElementByClass() dan FindElementByTag(), seperti yang ditunjukkan.
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, Selenium Driver menemukan data tabel menggunakan pendekatan serupa. Tulis 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
Excel dapat diinisialisasi menggunakan atribut Range atau atribut Cells pada lembar kerja. Untuk mengurangi kompleksitas skrip VBA, data koleksi diinisialisasi ke atribut Cells pada Lembar 2 di buku kerja. Atribut Text membantu menempatkan 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, tetapkan subrutin ke tombol Excel dan keluar dari modul VBA. Beri label tombol tersebut sebagai Refresh atau nama lain yang sesuai. Untuk contoh ini, tombol tersebut diberi label Refresh.
Langkah 4) Tekan tombol Refresh untuk mendapatkan hasil seperti di bawah ini.
Langkah 5) Bandingkan hasil di Excel dengan hasil di Google Chrome.












