Praktikum 4: Implementasi Web Scraping dalam Analisis
Data
1. Latar Belakang
Dalam dunia digital saat ini, banyak informasi yang hanya tersedia di
situs web dalam bentuk HTML dan tidak disediakan dalam format
terstruktur seperti CSV atau API. Web scraping menjadi salah satu teknik
yang memungkinkan pengambilan data secara otomatis, sehingga memudahkan
proses analisis data.
Bahasa pemrograman R menyediakan berbagai alat yang dapat digunakan
untuk scraping data dari situs web dengan lebih efisien. Praktikum ini
bertujuan untuk mengeksplorasi berbagai metode web scraping menggunakan
R, mulai dari teknik dasar hingga scraping data dari situs dengan
struktur yang kompleks. Selain itu, penggunaan teknologi AI seperti
ChatGPT juga akan dieksplorasi sebagai alat bantu dalam memahami elemen
HTML dan optimasi kode scraping.
2. Perangkat dan Paket yang Digunakan
Untuk melaksanakan web scraping dalam R, beberapa perangkat dan
pustaka berikut perlu dipersiapkan:
R dan RStudio → Sebagai lingkungan pemrograman
utama.
Paket rvest → Digunakan untuk
mengambil dan mengekstrak data dari halaman web.
Paket tidyverse → Untuk manipulasi
data setelah scraping.
ChatGPT → Sebagai alat bantu untuk memahami
struktur HTML dan menulis kode scraping secara lebih efisien.
Instalasi Paket
Sebelum melakukan scraping, pastikan semua paket telah diinstal di R
dengan menjalankan perintah berikut:
install.packages("rvest") # Paket utama untuk scraping
install.packages("tidyverse") # Paket tambahan untuk manipulasi data
Kemudian, pustaka yang dibutuhkan dapat dipanggil dengan:
library(rvest)library(tidyverse)
3. Teknik dan Metode Web Scraping
3.1 Ekstraksi Data dari Tabel Web
Banyak situs menyediakan informasi dalam bentuk tabel yang dapat
langsung diambil menggunakan R tanpa perlu memahami struktur HTML secara
mendalam.
Langkah-langkahnya:
Buka situs web yang memiliki tabel data.
Gunakan fitur Inspect Element untuk memastikan
lokasi tabel dalam struktur HTML.
Gunakan html_table() untuk mengekstrak data tabel ke
dalam format data frame.
Contoh Kode:
url <-"https://www.worldometers.info/coronavirus/"page <-read_html(url)table <- page %>%html_node("table") %>%html_table(fill =TRUE)head(table) # Menampilkan beberapa baris pertama dari tabel
3.2 Mengambil Data Non-Tabel (Judul, Paragraf, dan
Link)
Selain tabel, banyak data penting yang tersebar dalam teks, heading,
atau hyperlink. Untuk scraping jenis data ini, kita perlu
mengidentifikasi elemen HTML yang menyimpannya.
Langkah-langkahnya:
Gunakan Inspect Element untuk menemukan elemen HTML
yang berisi data.
Gunakan html_nodes() dan html_text() untuk
mengambil teks dari elemen tersebut.
Contoh Kode:
url <-"https://www.bbc.com/news"page <-read_html(url)headlines <- page %>%html_nodes("h3") %>%html_text()print(headlines) # Menampilkan daftar judul berita
3.3 Scraping dari Banyak Halaman Secara
Otomatis
Beberapa situs memiliki data yang tersebar di berbagai halaman. Untuk
mengambil data dari beberapa halaman, kita bisa menggunakan loop dan
menyusun dataset akhir secara otomatis.
Langkah-langkahnya:
Tentukan pola URL yang digunakan untuk navigasi antar halaman.
Gunakan loop for untuk mengakses setiap halaman dan
mengambil data.
Gabungkan hasil scraping dari semua halaman menjadi satu dataset
besar.
Cara ini memudahkan proses scraping tanpa harus memahami HTML secara
mendalam.
4. Tantangan dalam Web Scraping dan Solusinya
Saat melakukan web scraping, ada beberapa kendala yang sering
dihadapi:
Pemblokiran oleh Situs Web
Beberapa situs mendeteksi aktivitas scraping dan membatasi
akses.
Solusi: Gunakan Sys.sleep() untuk
menambahkan jeda antar request atau ubah user-agent agar menyerupai
browser biasa.
Struktur HTML yang Kompleks
Data tersembunyi dalam elemen HTML yang sulit diakses.
Solusi: Gunakan Inspect Element
atau minta bantuan ChatGPT untuk memahami pola HTML yang digunakan.
Data yang Dimuat Secara Dinamis
Beberapa situs memuat data menggunakan JavaScript, sehingga tidak
langsung tersedia dalam kode HTML.
Solusi: Gunakan Selenium atau cari tahu apakah
situs memiliki API yang bisa digunakan.
5. Kesimpulan
Web scraping adalah teknik yang sangat berguna dalam pengumpulan data
dari berbagai situs web. Dengan memanfaatkan paket
rvest, kita dapat dengan mudah mengekstrak data dalam format
tabel maupun non-tabel. Jika situs memiliki struktur HTML yang kompleks,
ChatGPT dapat digunakan sebagai alat bantu untuk
memahami dan menyusun kode scraping dengan lebih cepat.
Namun, perlu diingat bahwa web scraping harus dilakukan dengan
etika yang baik, termasuk menghormati aturan yang
ditetapkan oleh pemilik situs. Dengan pemahaman yang benar, web scraping
dapat menjadi alat yang sangat bermanfaat dalam analisis data berbasis
web.
Algoritma. (2024, 20 Desember). Panduan Lengkap Web Scraping:
Teknik dan Implementasi. Diakses pada 12 Maret 2025, dari https://blog.algorit.ma/web-scraping-2/