How to scrapting Web with macro VBA

Posted by Muhammad AMIN 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 ....
Template by Cara Membuat Email | Copyright of kreatifitas pemuda indonesia.