Web scraping adalah teknik otomatis untuk mengambil data dari situs web dan memasukkannya pada format yang mudah dianalisis.
Artikel ini menjelaskan konsep dasar, alur kerja, dan langkah praktis yang cocok untuk pemula, termasuk pemilihan tools, contoh penggunaan sederhana, serta aspek etika dan legal yang perlu diperhatikan sebelum mengumpulkan data dari situs publik.
Bagaimana Cara Melakukan Web Scraping untuk Pemula?
Untuk pemula, cara terbaik memulai adalah bertahap: pertama pahami struktur halaman web, lalu praktikkan scraping sederhana pada situs yang mengizinkan. Mulailah dengan tools ringan untuk fetch dan parse, lalu simpan hasil pada CSV atau database kecil.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangPelajari juga aturan etika dan teknik menghindari pemblokiran. Sekarang kita mulai dari dasar: memahami HTML dan CSS pada halaman web.
Memahami Struktur HTML dan CSS untuk Ekstraksi Data
Sebelum menulis scraper, kamu perlu memahami struktur halaman lewat DOM (document object model). Setiap elemen di halaman adalah node, seperti <div>, <table>, <a>, atau <img>, lengkap dengan atribut seperti id dan class.
Pada browser modern, buka Developer Tools lalu tab Elements atau Inspector, kemudian arahkan kursor ke elemen yang kamu butuhkan. Di sana kamu bisa melihat hierarki elemen dan atribut yang nanti dipakai untuk seleksi.
Untuk memilih elemen, kamu bisa memakai CSS selector atau XPath. CSS selector biasanya lebih sederhana, misalnya .product-item a.title untuk memilih link judul dalam card produk.
XPath lebih fleksibel untuk struktur rumit, misalnya //table[@id=’orders’]//tr[2]/td[1] untuk mengambil sel tertentu dalam tabel. Pada banyak kasus, CSS selector cukup dan lebih mudah dibaca, sedangkan XPath berguna saat struktur tidak konsisten.
Tantangan umum adalah konten dinamis yang dimuat oleh JavaScript. Cek apakah data muncul jika kamu menonaktifkan JavaScript atau lihat pada tab Network apakah halaman memanggil API secara terpisah.
Jika data datang dari permintaan XHR atau fetch, sering kali lebih stabil untuk mengakses endpoint tersebut dibanding men-scrape HTML. Langkah analisis ini akan sangat membantu saat kamu masuk ke praktik teknis pada tahap berikutnya.

Langkah Praktis Web Scraping untuk Pemula
Sebagai lanjutan dari pemahaman struktur HTML, kamu bisa mulai dari persiapan lingkungan dulu. Instal Python terbaru, lalu pasang library requests dan BeautifulSoup dengan perintah pip install requests beautifulsoup4. Buat satu folder proyek khusus, misalnya web-scraping-pertama, dan di dalamnya satu file, misalnya scrape.py, agar semua eksperimen rapi.
Alur kerjanya sederhana: ambil halaman, parse HTML, ekstrak elemen, lalu simpan. Secara garis besar, urutan pada Python bisa seperti ini.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import requests from bs4 import BeautifulSoup import csv url = "https://contoh.com" resp = requests.get(url) soup = BeautifulSoup(resp.text, "html.parser") items = soup.select("h2.title") with open("hasil.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["judul"]) for item in items: writer.writerow([item.get_text(strip=True)]) |
Sebelum mengeksekusi logika utama, biasakan cek dulu status code respons, misalnya print(resp.status_code). Jika hasil tidak sesuai, tampilkan sebagian HTML dengan print(resp.text[:1000]) agar struktur halaman terlihat.
Saat mencoba, batasi jumlah request dan tambahkan jeda dengan time.sleep() untuk mengurangi beban server serta menghindari blokir.
Memilih Tools, Libraries, dan Workflow yang Tepat
Setelah paham langkah praktis, kamu perlu memilih tools yang pas dengan tujuanmu. Untuk proyek kecil tanpa banyak JavaScript, kombinasi requests dan HTML parser, seperti BeautifulSoup, sudah cukup. Pendekatan ini ringan, cepat, mudah dipelajari, dan cocok untuk eksperimen pada laptop.
Jika halaman sangat bergantung pada JavaScript atau interaksi seperti klik dan scroll, gunakan browser automation, seperti Selenium atau Playwright. Keduanya menjalankan headless browser sehingga kamu melihat data seperti pengguna biasa. Kekurangannya lebih berat, lebih lambat, dan butuh sumber daya lebih besar saat deployment.
Untuk skala besar, banyak situs, dan kebutuhan struktur proyek yang rapi, pertimbangkan Scrapy. Framework ini punya pipeline, scheduler, dan pengaturan concurrency bawaan sehingga cocok untuk crawling rutin. Namun, learning curve lebih tinggi dibandingkan dengan skrip sederhana.
Selalu cek dulu apakah situs menyediakan API yang resmi. Jika ada dan memenuhi kebutuhan, pilih itu karena biasanya lebih stabil, legal lebih jelas, dan jauh lebih efisien daripada scraping HTML.
Untuk workflow pemula, mulai dari prototipe lokal: tulis skrip kecil, ambil beberapa halaman, dan simpan pada CSV atau JSON dengan pandas. Setelah pola stabil, bungkus dalam fungsi rapi, lalu jadwalkan dengan cron atau task scheduler sederhana. Jika kebutuhan tumbuh, baru pikirkan pindah ke Scrapy atau deployment terpusat dalam server.
Etika, Legalitas, dan Tips Anti Block Saat Mengambil Data
Sebelum scraping, biasakan cek robots.txt, terms of service, dan kebijakan hak cipta situs. Pastikan kamu hanya mengambil data yang memang diizinkan, misalnya data publik tanpa batasan eksplisit. Jika situs melarang automated access atau data harvesting, sebaiknya cari sumber lain.
Jalankan teknik politeness: batasi request per detik, tambahkan random delay, dan gunakan User-Agent yang jelas, bukan default library. Manfaatkan caching agar tidak meminta halaman yang sama berulang kali. Waspadai tanda pemblokiran, seperti banyak HTTP 429, 403, halaman kosong, atau tiba-tiba selalu diarahkan ke captcha.
Untuk jangka panjang, prioritaskan public API resmi jika tersedia karena lebih stabil dan legal. Jika datanya sensitif, berbayar, atau akan dipakai secara masif, pertimbangkan menghubungi pemilik situs dan minta izin tertulis. Pendekatan ini membuat scraping kamu lebih berkelanjutan dan mengurangi risiko masalah hukum di kemudian hari.
Penutup
Dengan memahami struktur halaman, mengikuti langkah praktis, memilih tools yang tepat, dan menghormati etika serta legalitas, pemula bisa melakukan web scraping secara efektif dan bertanggung jawab.
Latihan bertahap dan eksperimen pada data nyata akan memperkuat kemampuan Anda. Terapkan panduan ini sebagai kerangka kerja awal dan kembangkan sesuai kebutuhan proyek.
