home
Berita
Pengumuman
Artikel
Video
Web Scraping dengan “Get & Transform”
Sekretariat Badan
Senin, 16 September 2019 02:42 WIB
Oleh Agung Daronoagungdarono@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:
Gambar 1 Langkah transformasi data halaman web dengan format Table: 1 s.d. 6
Langkah selanjutnya, dapat dilihat dalam Gambar 2.
7. Pilih Table 08. Untuk menampilkan preview dari halaman web sumber, pilih Web View (opsional)9. Pilih Transform
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 File11. Pilih Close & Load To12. Pilih Table13. Pilih Existing Worksheet14. Pilih Load
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.
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.
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 Source8. Klik drop-list dan pilihlah Text File9. Pilih Ok10. Pilih tab Add Column11. Pilih Index Column12. Pilih From 1
Gambar 6 Langkah transformasi data halaman web dengan format Document: 7 s.d. 12
Hasil dari langkah di atas terlihat dalam Gambar 7.
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.
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 Custom14. 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
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 Custom17. Pilih Fill18. 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.
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>”.
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 Column20. 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 Ok22. Lakukan filter data23. Pilih hanya untuk Y24. Pilih Ok
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 kanan26. Pilih Split27. Pilih By Delimiter28. Pilih Custom29. Masukkan: </a>30. Pilih Each occurrence …31. Pilih Ok32. 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.
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 kanan34. Pilih Transform35. Pilih Trim
Lakukan perintah 33 s.d. 35 di atas untuk kolom Custom.1 dan Custom.2
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.
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.
Layanan Informasi Unit
Layanan Informasi Kediklatan dan Pembelajaran
Layanan Bantuan dan Pengaduan
Informasi Publik