Lewati ke konten
BPPK Kementerian Keuangan
Berita

Web Scraping dengan “Get & Transform”

Sekretariat Badan

Oleh Agung Darono
agungdarono@kemenkeu.go.id

Dalam beberapa situasi, kita membutuhkan informasi yang berasal dari berbagai halaman web (web pages) untuk menyelesaikan pekerjaan. Halaman web tersebut dapat bersumber dari jaringan intranet ataupun internet. Informasi yang dibutuhkan ada kalanya berasal dari banyak halaman web, dan terkadang juga perlu diambil secara berulang atau bahkan secara terus-menerus.

Teknik untuk mengambil data dari halaman web tersebut yang paling sering dilakukan adalah mem-block data yang diinginkan, dan menyalin-tempel (copy-and-paste atau “copas”) data tersebut ke dalam aplikasi pengolah data yang kita gunakan, misalnya Microsoft Excel (selanjutnya: Excel). Teknik ini sangatlah tidak efisien dan cenderung rawan dengan kesalahan jika dilakukan secara berulang dan bahkan juga membosankan apabila dilakukan sebagai aktivitas yang rutin. Tantangan selanjutnya dari teknik ini adalah bagaimana mengonsolidasikan data tersebut menjadi bagian dari keseluruhan basis data yang kita kelola. Untuk mengatasi hal ini, terdapat satu teknik alternatif yang dapat digunakan untuk menggantikan aktivitas copas data yang berulang tersebut, yaitu melalui penggunaan fitur “Get & Transform” (selanjutnya: G&T) yang ada pada Excel 2016 dan versi setelah itu. Untuk Excel 2013, G&T dikenal sebagai Power Query dan harus diaktifkan sebagai add-ins.

Tulisan ini selanjutnya akan terdiri dari tiga bagian. Pertama, penjelasan ringkas tentang web scraping. Kedua, penggunaan fitur G&T untuk scraping data dari halaman web yang berupa “Table”. Ketiga, aplikasi G&T untuk data dari halaman web bertipe “Document”.

Web Scraping

Web scraping adalah penggunaan perangkat teknologi untuk mengotomasikan pengambilan (extraction) dan mengorganisasikan data dari web (world wide web) yang dapat digunakan untuk analisis data lebih lanjut. Perlu diingat, pengambilan data/informasi dari suatu halaman web harus mempertimbangkan “syarat dan ketentuan”, legal notice ataupun hal yang sejenis itu, sebagaimana yang telah ditetapkan oleh pengelola situs web yang bersangkutan Konsekuensi dari situasi tersebut adalah bahwa web scraping harus dilakukan dengan terlebih dulu mempertimbangkan ketentuan dari sang pemilik/pengelola halaman web yang sedang diakses (Krotov dan Silva 2018). Perangkat yang populer digunakan antara lain R ataupun Python (Marble 2016). Tulisan ini memilih menggunakan fitur G&T dalam Excel lebih karena popularitas perangkat ini di kalangan pengguna komputer.

G&T untuk data “Table”

Halaman web mempunyai formatnya masing-masing dalam menampilkan datanya. Salah satu format tersebut disebut sebagai Table. Jika format ini yang dipilih maka G&T akan langsung dapat mengenalinya dan kemudian mentransformasi halaman tersebut menjadi sebuah format baris dan kolom yang nantinya dapat disimpan sebagai worksheet di dalam Excel untuk diolah lebih lanjut. Perhatikan langkah-langkah transformasi yang bersumber dari halaman web berformat Table. Data sumber berasal dari link tentang kurs pajak di URL ini: https://fiskal.kemenkeu.go.id/dw-kurs-db.asp. Gambar 1 merupakan ilustrasi langkah 1 s.d. 6:

  1. Pilih tab Data, New Query
  2. Pilih New Query
  3. Pilih From Other Sources
  4. Pilih From Web
  5. Pilih Basic
  6. Masukkan URL: https://fiskal.kemenkeu.go.id/dw-kurs-db.asp

gambar1Gambar 1 Langkah transformasi data halaman web dengan format Table: 1 s.d. 6


Langkah selanjutnya, dapat dilihat dalam Gambar 2.

7. Pilih Table 0
8. Untuk menampilkan preview dari halaman web sumber, pilih Web View (opsional)
9. Pilih Transform

gambar2

Gambar 2  Langkah transformasi data halaman web dengan format Table: 7 s.d. 9

Langkah selanjutnya, dapat dilihat dalam Gambar 3.

10. Perhatikan Gambar 3 yang diberikan kotak garis putus-putus warna merah. Area ini adalah data yang berhasil dikenali dan ditransform oleh G&T dari halaman web yang di dalamnnya terdapat komponen Table data yang 
langsung bisa diolah menjadi data berformat kolom-baris. Selanjutnya data ini bisa disimpan menjadi sheet dalam Excel. Pilihlah File
11. Pilih Close & Load To
12. Pilih Table
13. Pilih Existing Worksheet
14. Pilih Load

gambar3

Gambar 3  Langkah transformasi data halaman web dengan format Table: 10 s.d. 14

G&T untuk data “Document”

Selain format Table yang dapat dikenali langsung sehingga dapat diubah menjadi sheet tanpa melakukan langkah transformasi tambahan, G&T juga mengenali data dari halaman web dengan mengidentifikasinya sebagai “Document”. Data dari halaman web dengan format Document ini tidak dapat langsung ditransformasi oleh G&T. Pengguna data harus melakukan beberapa langkah dengan menggunakan fitur transformasi data yang disediakan oleh G&T. Gambar 4 memperlihatkan perubahan data yang diinginkan dari halaman web menjadi sheet di Excel yang dapat dioleh lebih lanjut.

gambar4

Gambar 4   Web scraping dari halaman web menjadi sheet Excel

Berikut adalah langkah-langkah tersebut. Beberapa langkah yang sama dengan bagian yang sudah dijelaskan sebelumnya tidak diulang lagi. Perhatikan Gambar 5 untuk langkah 1 s.d. 6.

  1. Pilih Basic
  2. Masukan URL, untuk kasus ini adalah: https://bppk.kemenkeu.go.id/id/publikasi/artikel/167-artikel-pajak?start=270&limit=0. Sesuaikan paramater sebagaimana yang diminta oleh aplikasi yang sedang diakses sehingga menampilkan data sesuai yang kehendaki.
  3. Pilih Ok
  4. Pilih Document
  5. Pilih HTML view
  6. Pilih Transform

gambar5

Gambar 5  Langkah transformasi data halaman web dengan format Document: 1 s.d. 6

Gambar 5 memperlihatkan respon G&T terhadap halaman web yang di dalamnya terdapat komponen berupa yang diidentifikasi sebagai Document. Data dalam bentuk Document ini terlebih dulu diubah, dari HTML menjadi Text File. Untuk melakukan hal ini, perhatikan langkah 7 s.d. 12. Termasuk dalam langkah ini adalah memberikan indeks dari setiap baris data sebagai langkah antisipasi untuk memudahkan idenfikasi setiap baris data dari Text File yang akan ditransformasi menjadi sheet Excel.

7. Klik dua-kali (double clicks) pada Source
8. Klik drop-list dan pilihlah Text File
9. Pilih Ok
10. Pilih tab Add Column
11. Pilih Index Column
12. Pilih From 1 

gambar6Gambar 6  Langkah transformasi data halaman web dengan format Document: 7 s.d. 12

Hasil dari langkah di atas terlihat dalam Gambar 7.

gambar7

Gambar 7  Tipe data Document diubah menjadi Text File dan diberi Index baris

Langkah berikutnya adalah menentukan karakter penanda yang unik dari setiap baris yang akan diambil (scraped) sebagai data. Perhatikan Gambar 7. Tanda segitiga dalam Gambar 7 merupakan penunjuk adanya karakter unik dari baris yang akan diambil. Artinya, jika terdapat baris yang secara akumulatif mempunyai ketiga jenis karakter yang terdapat dalam tanda segitiga tersebut maka itu adalah baris yang akan di-scraped sebagai data.

gambar8

Gambar 8  Karakter penanda dari baris yang akan di-scraped

Untuk selanjutnya, langkah 13 s.d. 15, dapat dilihat dalam Gambar 9.

13. Pilih tab Add Column, kemudian Conditional Column sehingga akan muncul kolom baru dengan nama Custom
14. Masukkan Column Name=Column1, Operator=ends with, Value= </a>, Output=Columns1, Else=null. Perintah ini artinya jika Column1 “diakhiri dengan” (ends with) karakter “</a>” maka kolom Custom akan diisi dengan isi dari kolom Column1 selain itu kolom Custom akan dibiarkan kosong (null).
15. Pilih Ok

gambar9

Gambar 9  Langkah transformasi data halaman web dengan format Document: 13 s.d. 15

Langkah selanjutnya, 16 s.d. 18, dapat dilihat dalam Gambar 10.

16. Klik kanan pada nama kolom Custom
17. Pilih Fill
18. Pilih Down. Perhatikan perbedaan kondisi data sebelum Fillà Down dengan sesudahnya. Perintah ini akan memindahkan isi kolom (fill) ke kolom yang ada di bawahnya (down) sepanjang kolom yang di bawah itu kosong.

gambar10

Gambar 10  Langkah transformasi data halaman web dengan format Document: 16 s.d. 18

Selanjutnya, perhatikan Gambar 11. Ulangi langkah 1 s.d. 3 di atas untuk baris yang berisi karakter “ </td>” dan “ </span>”.

gambar11

Gambar 11 Tanda/karakter dalam baris yang akan diambil sebagai data

Langkah berikutnya adalah menyusun perintah untuk memisahkan baris yang telah memenuhi syarat berupa akumulasi ketiga jenis karakter yang terdapat dalam tanda segitiga tersebut. Perintah ini disimpan sebagai conditional column dengan nama Custom.3. Nantinya, baris yang berisi karakter Y akan di-scraped dan diambil sebagai data, sedangkan yang bernilai N tidak akan diolah lebih lanjut. Lihat Gambar 12 untuk langkah 19 s.d. 24.

19. Pilih Add Column, lalu pilih Conditional Column
20. Isikan perintah berikut ini pada kolom Custom.3: if (Text.EndsWith([Column1], "</span>") and (Text.EndsWith([Custom.1], "</td>") and (Text.Contains([Custom.2], "Hits")))) then "Y" else "N"
21. Pilih Ok
22. Lakukan filter data
23. Pilih hanya untuk Y
24. Pilih Ok

gambar12

Gambar 12   Langkah transformasi data halaman web dengan format Document: 19 s.d. 24

Data siap digunakan untuk proses lebih lanjut. File contoh langkah demi langkah dari tip & trik ini dapat diunduh di link ini: https://s.id/5UKhb. Sampai dengan tahap ini, data yang sudah disaring berupa baris yang kolom Custom.3-nya bernilai Y. Data ini masih harus dipilah lagi dengan kolom yang tidak diperlukan. Lihat Gambar 13 untuk langkah 25 s.d. 32 berikut ini.

25. Klik kanan
26. Pilih Split
27. Pilih By Delimiter
28. Pilih Custom
29. Masukkan: </a>
30. Pilih Each occurrence …
31. Pilih Ok
32. Hapus kolom yang tidak perlu, klik kanan, pilih Remove

Lakukan kembali langkah 25 s.d. 32 di atas untuk masing-masing kolom Custom.1 (dengan delimiter </td>)dan Custom.2 (dengan delimiter </span>). Untuk itu perintah yang harus dilakukan adalah memecah (split) untuk beberapa kolom yaitu: Custom, Custom.1 dan Custom.2. Selanjutnya kolom yang tidak diperlukan dapat dihapus.

gambar13

Gambar 13  Langkah transformasi data halaman web dengan format Document: 25 s.d. 32

Untuk menghilang spasi di depan atau belakang isi kolom Custom, Custom.1 dan Custom.2 lakukan perintah Trim. Lihat Gambar 14.

33. Pilih kolom Custom, klik kanan
34. Pilih Transform
35. Pilih Trim

Lakukan perintah 33 s.d. 35 di atas untuk kolom Custom.1 dan Custom.2

gambar14

Gambar 14  Langkah transformasi data halaman web dengan format Document: 25 s.d. 32

Agar lebih informatif, nama kolom dapat diganti. Perhatikan Gambar 15. Setelah langkah tersebut, data dapat disimpan dengan perintah Close & Load To sebagaimana yang dilakukan untuk data halaman dengan tipe Table yang sudah dijelaskan pada bagian sebelumnya. Data siap digunakan untuk proses lebih lanjut. File contoh langkah demi langkah dari tip & trik ini dapat diunduh di link ini: https://s.id/5UKhb.

gambar15

Gambar 15 Ubah nama kolom dan hasil akhir web scraping dari halaman web dengan tipe Document

Referensi

 

Krotov, Vlad, and Leiser Silva. 2018. “Legality and Ethics of Web Scraping.” In Twenty-Fourth Americas Conference on Information Systems. New Orleans.
Marble, William. 2016. “Web Scraping With R.” Stanford University. https://web.stanford.edu/~wpmarble/webscraping_tutorial/webscraping_tutorial.pdf.