How to scrapting Web with macro VBA
Rabu, 29 Juli 2020
1
komentar
Hallo Guys,
Pada kesempatan ini saya berbagi simple scapting data dengan excel macro vba. untuk mempersingkat langsung aja ke pembahasan.
1. Langkah Pertama Buka lembar kerja baru Excel (Ctrl+N)
2. Tampilkan menu Developer Pada Excel
Untuk menampilkan menu Developer bisa ditampilkan dengan cara:
Klik File >> Option >> Custumize Ribbon >> Checklist pada Developer
3. Pilih Menu Developer >> pilih View Code (Alt + F11)
Maka akan tampil Menu Explorer Excel
4 . Buat Script untuk VBA nya, untuk kesempatan kali ini saya akan scrapt data Demografi penduduk indonesia dari Wikipedia. untuk selanjutnya langsung ke pembahasan script.
4.1 Insert module pada menu explorer dengan cara klik kanan explorer >> Pilih insert >> Pilih Module
4.2 Pilih menu tool >> Preference , maka akan muncul data seperti dibawah ini, sesuaikan tools preference seperti digambar
4.3 Buat script seperti berikut pada modul
Sub Scrapt() '// Menentukan nama function Vba
Dim IeObj As InternetExplorer '// menentukan Fungsi dan type Object
Dim HtmlEle As IHTMLElement ' // menentukan Fungsi dan type Object
Dim i As Integer '// menentukan Fungsi dan type Object
i = 1 '// menentukan value sebagai looping data pada cell
Set IeObj = New InternetExplorer '// Mensetting object ke internet expler
IeObj.Visible = False '// apabila true akan tampilkan data pada web yang telah di navigasi
IeObj.Navigate "https://id.wikipedia.org/wiki/Demografi_Indonesia" '// Object Web Scrapt
Application.Wait Now + TimeValue("00:00:05") '// Waktu loading scrapt data pada web
For Each HtmlEle In IeObj.Document.getElementsByClassName("wikitable")(0).getElementsByTagName("tr")
With ActiveSheet '// mengambil data pada element web dengan unik seperti class, id, name tertentu pada html web tersebut
.Range("A" & i).Value = HtmlEle.Children(0).textContent '// menset rang table data content yang akan diambil
.Range("B" & i).Value = HtmlEle.Children(1).textContent '// menset rang table data content yang akan diambil
.Range("C" & i).Value = HtmlEle.Children(2).textContent '// menset rang table data content yang akan diambil
.Range("D" & i).Value = HtmlEle.Children(3).textContent '// menset rang table data content yang akan diambil
.Range("E" & i).Value = HtmlEle.Children(4).textContent '// menset rang table data content yang akan diambil
.Range("F" & i).Value = HtmlEle.Children(5).textContent '// menset rang table data content yang akan diambil
.Range("G" & i).Value = HtmlEle.Children(6).textContent '// menset rang table data content yang akan diambil
.Range("H" & i).Value = HtmlEle.Children(7).textContent '// menset rang table data content yang akan diambil
.Range("I" & i).Value = HtmlEle.Children(8).textContent '// menset rang table data content yang akan diambil
End With
i = i + 1 '// looping data berdasarkan row data table
Next HtmlEle // Tampilkan object di excel
End Sub // Tutup function
Berikut tampilan web yang di scrapt "https://id.wikipedia.org/wiki/Demografi_Indonesia"
Jumlah child pada script vba pada looping disamain jumlah kolom pada table web tersebut
Buat format Table sesuai dengan jumlah child data table
Buat tombol untuk memproses load data dari html dengan cara insert >> Pilih Shape
Klik kanan Shape >> pilih Assign Macro >> pilih function yang udah di buat, selanjutnya klik pada tombol yang telah diset macro maka akan meload data dan menampilkan data pada table yang telah di ambil unik tablenya seperti berikut
Demikianlah Penjelan simple scrapt data dengan macro vba. Salam ambyarrr..
Baca Selengkapnya ....