A Step-by-Step Python Selenium Web Scraping Tutorial

Terakhir diperbarui pada May 6, 2026
Step-by-step Python Selenium web scraping tutorial title slide with coding and web icons

Web sekarang sudah jauh berbeda dibanding dulu. Hampir setiap situs yang Anda buka kini ditenagai JavaScript, dengan konten yang dimuat secara dinamis—bayangkan infinite scroll, pop-up, dan dashboard yang baru menampakkan isinya setelah satu atau dua klik. Faktanya, 98,7% dari seluruh website kini menggunakan JavaScript, yang berarti alat scraping lama yang hanya membaca HTML statis akan kehilangan banyak data berharga. Kalau Anda pernah mencoba mengambil harga produk dari situs e-commerce modern atau menarik listing properti dari peta interaktif, Anda pasti tahu rasanya frustrasi: data yang Anda cari memang tidak ada di source code.

Di sinilah scraping dengan Selenium jadi berguna. Sebagai orang yang sudah bertahun-tahun membangun alat otomatisasi (dan ya, meng-scrape lebih banyak website daripada yang ingin saya akui), saya bisa bilang: menguasai Selenium itu seperti punya kekuatan super bagi siapa pun yang butuh data dinamis yang selalu up-to-date. Dalam tutorial web scraping Selenium ini, saya akan memandu Anda lewat langkah-langkah penting—dari setup sampai otomatisasi—dan menunjukkan cara menggabungkan Selenium dengan Thunderbit untuk data yang rapi dan siap diekspor. Entah Anda analis bisnis, profesional sales, atau sekadar pengguna Python yang penasaran, Anda akan pulang dengan keterampilan praktis dan sedikit hiburan (karena, jujur saja, debugging selector XPath itu memang bisa menempa karakter).

Coba Thunderbit AI Web Scraper

Apa Itu Selenium dan Mengapa Dipakai untuk Web Scraping?

selenium-dynamic-vs-static-web-scraping.png Mari mulai dari dasar. Selenium adalah framework open-source yang memungkinkan Anda mengendalikan browser web sungguhan—seperti Chrome atau Firefox—dengan kode. Anggap saja ini seperti robot yang bisa membuka halaman, mengklik tombol, mengisi formulir, menggulir, bahkan menjalankan JavaScript, persis seperti pengguna manusia. Ini penting karena kebanyakan website modern tidak menampilkan semua datanya sejak awal. Sebaliknya, mereka memuat konten secara dinamis, sering kali setelah Anda berinteraksi dengan halaman.

Apa Itu Data Scraping dan Cara Melakukannya di 2026 Get Started Free

Kenapa ini penting untuk scraping? Alat tradisional seperti BeautifulSoup atau Scrapy sangat bagus untuk HTML statis, tetapi mereka tidak bisa “melihat” apa pun yang dimuat oleh JavaScript setelah halaman pertama terbuka. Selenium, sebaliknya, bisa berinteraksi dengan halaman secara real time, jadi sangat cocok untuk:

  • Mengambil daftar produk yang baru muncul setelah mengklik “Load More”
  • Mengambil harga atau ulasan yang diperbarui secara dinamis
  • Menavigasi formulir login, pop-up, atau infinite scroll
  • Mengekstrak data dari dashboard, peta, atau elemen interaktif lainnya

Singkatnya, Selenium adalah alat andalan Anda saat perlu mengambil data yang baru muncul setelah halaman selesai dimuat—atau setelah ada aksi pengguna.

Langkah-Langkah Utama untuk Web Scraping dengan Python Selenium

Scraping dengan Selenium pada dasarnya terdiri dari tiga langkah penting:

LangkahYang DilakukanMengapa Penting
1. Menyiapkan LingkunganInstal Selenium, WebDriver, dan library PythonAgar alat siap dipakai dan Anda terhindar dari masalah setup
2. Menemukan ElemenCari data yang diinginkan dengan ID, class, XPath, dan lain-lainMenargetkan info yang tepat, meskipun tersembunyi oleh JavaScript
3. Mengekstrak & Menyimpan DataAmbil teks, tautan, atau tabel lalu simpan ke CSV/ExcelMengubah data mentah web menjadi sesuatu yang bisa dipakai

Mari kita bahas tiap langkah dengan contoh praktis dan kode yang bisa Anda salin, sesuaikan, dan pamerkan ke teman-teman.

Langkah 1: Menyiapkan Lingkungan Python Selenium Anda

Hal pertama yang perlu dilakukan: instal Selenium dan browser driver (seperti ChromeDriver untuk Chrome). Kabar baiknya? Sekarang jauh lebih mudah daripada sebelumnya.

Instal Selenium

Buka terminal Anda dan jalankan:

pip install selenium

Dapatkan WebDriver

Tips pro: Dengan Selenium 4.6+, Anda bisa memakai Selenium Manager untuk mengunduh driver secara otomatis, jadi Anda mungkin tidak perlu repot mengatur variabel PATH lagi (dokumentasi).

Script Selenium Pertama Anda

Berikut “hello world” singkat untuk Selenium:

from selenium import webdriver

driver = webdriver.Chrome()  # Atau webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()

Tips troubleshooting:

  • Kalau muncul error “driver not found”, cek PATH Anda atau gunakan Selenium Manager.
  • Pastikan versi browser dan driver Anda cocok.
  • Kalau Anda memakai server headless (tanpa GUI), lihat tips mode headless di bawah.

Langkah 2: Menemukan Elemen Web untuk Ekstraksi Data

Sekarang bagian yang seru: memberi tahu Selenium data mana yang Anda butuhkan. Website dibangun dari elemen—div, span, tabel, dan sebagainya—dan Selenium memberi Anda beberapa cara untuk menemukannya.

Strategi Locator yang Umum

  • By.ID: Mencari elemen dengan ID unik
  • By.CLASS_NAME: Mencari elemen berdasarkan class CSS
  • By.XPATH: Menggunakan ekspresi XPath (sangat fleksibel, tetapi bisa rapuh)
  • By.CSS_SELECTOR: Menggunakan selector CSS (bagus untuk query yang kompleks)

Begini cara menggunakannya:

from selenium.webdriver.common.by import By

# Cari berdasarkan ID
price = driver.find_element(By.ID, "price").text

# Cari berdasarkan XPath
title = driver.find_element(By.XPATH, "//h1").text

# Cari semua gambar produk dengan CSS selector
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
    print(img.get_attribute("src"))

Tips pro: Selalu gunakan locator yang paling sederhana dan paling stabil (ID > class > CSS > XPath). Dan jika Anda men-scrape halaman yang memuat data dengan jeda, gunakan explicit wait:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
price_elem = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".price")))

Ini membantu script Anda tidak crash kalau data butuh beberapa detik untuk muncul.

Langkah 3: Mengekstrak dan Menyimpan Data

Begitu elemen sudah ditemukan, saatnya mengambil datanya dan menyimpannya di tempat yang berguna.

Mengekstrak Teks, Tautan, dan Tabel

Misalnya Anda sedang men-scrape tabel produk:

data = []
rows = driver.find_elements(By.XPATH, "//table/tbody/tr")
for row in rows:
    cells = row.find_elements(By.TAG_NAME, "td")
    data.append([cell.text for cell in cells])

Menyimpan ke CSV dengan Pandas

import pandas as pd

df = pd.DataFrame(data, columns=["Nama", "Harga", "Stok"])
df.to_csv("products.csv", index=False)

Anda juga bisa menyimpannya ke Excel (df.to_excel("products.xlsx")) atau bahkan mengirimnya ke Google Sheets menggunakan API mereka.

Contoh Lengkap: Scraping Judul dan Harga Produk

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

driver = webdriver.Chrome()
driver.get("https://example.com/products")

data = []
products = driver.find_elements(By.CLASS_NAME, "product-card")
for p in products:
    title = p.find_element(By.CLASS_NAME, "title").text
    price = p.find_element(By.CLASS_NAME, "price").text
    data.append([title, price])

driver.quit()

df = pd.DataFrame(data, columns=["Judul", "Harga"])
df.to_csv("products.csv", index=False)

Selenium vs. BeautifulSoup dan Scrapy: Apa yang Membuat Selenium Unik?

selenium-vs-traditional-scrapers-comparison.png Mari kita selesaikan perdebatan ini: kapan sebaiknya Anda memakai Selenium, dan kapan alat seperti BeautifulSoup atau Scrapy lebih cocok? Berikut perbandingan singkatnya:

AlatPaling Cocok UntukMendukung JavaScript?Kecepatan & Penggunaan Sumber Daya
SeleniumSitus dinamis/interaktifYaLebih lambat, memakai lebih banyak memori
BeautifulSoupScraping HTML statis sederhanaTidakSangat cepat, ringan
ScrapyCrawling situs statis volume tinggiTerbatas*Sangat cepat, asinkron, hemat RAM
ThunderbitScraping bisnis tanpa kodeYa (AI)Cepat untuk pekerjaan kecil/menengah

*Scrapy bisa menangani sebagian konten dinamis dengan plugin, tetapi itu bukan keunggulan utamanya (ScrapingBee).

Kapan memakai Selenium:

  • Data baru muncul setelah klik, scroll, atau login
  • Anda perlu berinteraksi dengan pop-up, infinite scroll, atau dashboard dinamis
  • Scraper statis tidak cukup

Kapan memakai BeautifulSoup/Scrapy:

  • Data sudah ada di HTML awal
  • Anda perlu men-scrape ribuan halaman dengan cepat
  • Anda ingin penggunaan sumber daya minimal

Dan kalau Anda ingin melewati coding sama sekali, Thunderbit memungkinkan Anda men-scrape situs dinamis dengan AI—cukup klik “AI Suggest Fields” dan ekspor ke Sheets, Notion, atau Airtable. (Lebih lanjut tentang ini di bawah.)

Cara Men-scrape Website Apa Pun dengan AI Get Started Free

Mengotomatiskan Tugas Web Scraping dengan Selenium dan Python

Jujur saja: tidak ada yang mau bangun jam 2 pagi hanya untuk menjalankan script scraping. Kabar baiknya, Anda bisa mengotomatiskan pekerjaan Selenium menggunakan alat penjadwalan Python atau scheduler sistem operasi Anda (seperti cron di Linux/Mac atau Task Scheduler di Windows).

Menggunakan Library schedule

import schedule
import time

def job():
    # Kode scraping Anda di sini
    print("Sedang men-scrape...")

schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Atau dengan Cron (Linux/Mac)

Tambahkan ini ke crontab Anda agar berjalan setiap jam:

0 * * * * python /path/to/your_script.py

Tips untuk otomatisasi:

  • Jalankan Selenium dalam mode headless (lihat di bawah) agar tidak muncul pop-up GUI.
  • Catat error dan kirim notifikasi jika ada yang salah.
  • Selalu tutup browser dengan driver.quit() untuk membebaskan sumber daya.

Meningkatkan Efisiensi: Tips Agar Scraping Selenium Lebih Cepat dan Lebih Andal

Selenium memang kuat, tetapi bisa lambat dan boros sumber daya kalau tidak hati-hati. Berikut cara mempercepatnya dan menghindari masalah umum:

1. Jalankan dalam Mode Headless

Tidak perlu menonton Chrome terbuka dan tertutup ratusan kali. Mode headless menjalankan browser di latar belakang:

from selenium.webdriver.chrome.options import Options

opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)

2. Blokir Gambar dan Konten Lain yang Tidak Diperlukan

Untuk apa memuat gambar kalau yang Anda ambil hanya teks? Blokir saja supaya halaman lebih cepat terbuka:

prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)

3. Gunakan Locator yang Efisien

  • Lebih baik pakai ID atau CSS selector sederhana daripada XPath yang rumit.
  • Hindari time.sleep()—gunakan explicit wait (WebDriverWait) saja.

4. Acak Delay

Tambahkan jeda acak untuk meniru perilaku browsing manusia dan menghindari pemblokiran:

import random, time

time.sleep(random.uniform(1, 3))

5. Ganti User Agent dan IP (Jika Perlu)

Kalau Anda men-scrape dalam volume besar, rotasikan string user agent Anda dan pertimbangkan memakai proxy untuk menghindari langkah anti-bot yang sederhana.

6. Kelola Sesi dan Error

  • Gunakan blok try/except untuk menangani elemen yang hilang dengan lebih rapi.
  • Catat error dan ambil screenshot untuk debugging.

Untuk tips optimasi lainnya, lihat panduan BrowserStack.

Lanjutan: Menggabungkan Selenium dengan Thunderbit untuk Ekspor Data Terstruktur

Di sinilah semuanya jadi jauh lebih menarik—terutama kalau Anda ingin menghemat waktu untuk pembersihan data dan ekspor.

Setelah Anda men-scrape data mentah dengan Selenium, Anda bisa memakai Thunderbit untuk:

  • Mendeteksi field otomatis: AI Thunderbit bisa membaca halaman hasil scraping atau CSV Anda dan menyarankan nama kolom (“AI Suggest Fields”).
  • Scraping subhalaman: Kalau Anda punya daftar URL (misalnya halaman produk), Thunderbit bisa mengunjungi masing-masing URL dan memperkaya tabel Anda dengan detail tambahan—tanpa perlu kode tambahan.
  • Enrichment data: Menerjemahkan, mengkategorikan, atau menganalisis data secara langsung.
  • Ekspor ke mana saja: Ekspor satu klik ke Google Sheets, Airtable, Notion, CSV, atau Excel.

Contoh Alur Kerja:

  1. Gunakan Selenium untuk men-scrape daftar URL dan judul produk.
  2. Ekspor data ke CSV.
  3. Buka Thunderbit, impor CSV Anda, lalu biarkan AI menyarankan field.
  4. Gunakan scraping subhalaman Thunderbit untuk menarik detail tambahan (seperti gambar atau spesifikasi) dari setiap URL produk.
  5. Ekspor dataset akhir yang sudah terstruktur ke Sheets atau Notion.

Kombinasi ini menghemat berjam-jam pekerjaan pembersihan manual dan membuat Anda bisa fokus pada analisis, bukan mengutak-atik data yang berantakan. Untuk info lebih lanjut tentang alur kerja ini, lihat panduan Selenium Thunderbit.

Ekspor Data Selenium dengan Thunderbit AI

Praktik Terbaik dan Troubleshooting untuk Web Scraping Selenium

Web scraping itu seperti memancing: kadang Anda dapat ikan besar, kadang malah tersangkut di gulma. Begini cara menjaga script Anda tetap andal—dan etis:

Praktik Terbaik

  • Patuhi robots.txt dan ketentuan situs: Selalu cek apakah scraping diizinkan.
  • Batasi permintaan Anda: Jangan membebani server—beri jeda dan perhatikan error HTTP 429.
  • Gunakan API jika tersedia: Kalau datanya tersedia publik lewat API, pakai itu—lebih aman dan lebih andal.
  • Scrape hanya data publik: Hindari info pribadi atau sensitif, dan perhatikan hukum privasi.
  • Tangani pop-up dan CAPTCHA: Gunakan Selenium untuk menutup pop-up, tetapi hati-hati dengan CAPTCHA—sulit untuk diotomatisasi.
  • Acak user agent dan delay: Membantu menghindari deteksi dan pemblokiran.

Error Umum dan Cara Memperbaikinya

ErrorArtinyaCara Memperbaiki
NoSuchElementExceptionTidak bisa menemukan elemenPeriksa ulang locator Anda; gunakan wait
Error timeoutHalaman atau elemen terlalu lama dimuatTambah waktu tunggu; cek kecepatan jaringan
Mismatch driver/browserSelenium tidak bisa menjalankan browserPerbarui versi driver dan browser Anda
Sesi crashBrowser tertutup tiba-tibaGunakan mode headless; kelola sumber daya

Untuk tips troubleshooting lainnya, lihat tutorial Selenium Thunderbit.

Kesimpulan & Poin Penting

Web scraping dinamis sekarang bukan cuma untuk developer hardcore. Dengan Python Selenium, Anda bisa mengotomatiskan browser apa pun, berinteraksi dengan situs yang paling rumit dan penuh JavaScript, lalu mengambil data yang dibutuhkan bisnis Anda—entah untuk sales, riset, atau sekadar memuaskan rasa penasaran. Ingat:

  • Selenium adalah alat pilihan untuk situs dinamis dan interaktif.
  • Tiga langkah utama: setup, temukan, ekstrak & simpan.
  • Otomatiskan script Anda untuk pembaruan data rutin.
  • Optimalkan kecepatan dan keandalan dengan mode headless, wait yang cerdas, dan locator yang efisien.
  • Gabungkan Selenium dengan Thunderbit untuk struktur data dan ekspor yang lebih mudah—terutama kalau Anda ingin menghindari kerepotan spreadsheet.

Siap mencobanya sendiri? Mulailah dengan contoh kode di atas, dan saat Anda siap membawa scraping ke level berikutnya, coba Thunderbit untuk pembersihan dan ekspor data instan bertenaga AI. Dan kalau Anda ingin belajar lebih banyak, kunjungi Blog Thunderbit untuk pembahasan mendalam, tutorial, dan update terbaru soal otomasi web.

Selamat men-scrape—semoga selector Anda selalu menemukan apa yang Anda cari.

Coba Thunderbit AI Web Scraper Gratis Get Started Free

FAQ

1. Mengapa saya harus memakai Selenium untuk web scraping, bukan BeautifulSoup atau Scrapy?
Selenium ideal untuk men-scrape website dinamis di mana konten baru muncul setelah aksi pengguna atau eksekusi JavaScript. BeautifulSoup dan Scrapy lebih cepat untuk HTML statis, tetapi tidak bisa berinteraksi dengan elemen dinamis atau mensimulasikan klik dan scroll.

2. Bagaimana cara membuat scraper Selenium saya berjalan lebih cepat?
Gunakan mode headless, blokir gambar dan resource yang tidak perlu, pakai locator yang efisien, dan tambahkan delay acak untuk meniru browsing manusia. Lihat panduan BrowserStack untuk lebih banyak tips.

3. Bisakah saya menjadwalkan tugas scraping Selenium agar berjalan otomatis?
Bisa! Gunakan library Python schedule atau scheduler OS Anda (cron atau Task Scheduler) untuk menjalankan script pada interval tertentu. Mengotomatiskan scraping membantu data Anda tetap terbaru.

4. Apa cara terbaik untuk mengekspor data hasil scraping dengan Selenium?
Gunakan Pandas untuk menyimpan data ke CSV atau Excel. Untuk ekspor yang lebih lanjut (Google Sheets, Notion, Airtable), impor data Anda ke Thunderbit dan gunakan fitur ekspor sekali klik.

5. Bagaimana cara menangani pop-up dan CAPTCHA di Selenium?
Anda bisa menutup pop-up dengan menemukan dan mengklik tombol tutupnya. CAPTCHA jauh lebih sulit—kalau Anda menemukannya, pertimbangkan solusi manual atau layanan pemecah captcha, dan selalu patuhi ketentuan layanan situs.

Ingin melihat lebih banyak tutorial scraping, tips otomasi AI, atau update terbaru tentang alat data bisnis? Berlangganan Blog Thunderbit atau kunjungi kanal YouTube kami untuk demo langsung.

Pelajari Lebih Lanjut

Shuai Guan
Shuai Guan
CEO di Thunderbit | Ahli Otomasi Data AI Shuai Guan adalah CEO Thunderbit dan lulusan Teknik dari University of Michigan. Dengan pengalaman hampir satu dekade di bidang teknologi dan arsitektur SaaS, ia berfokus mengubah model AI yang kompleks menjadi alat ekstraksi data praktis tanpa coding. Di blog ini, ia membagikan wawasan apa adanya yang sudah teruji di lapangan tentang web scraping dan strategi otomasi untuk membantu Anda membangun alur kerja yang lebih cerdas dan berbasis data. Saat tidak sedang mengoptimalkan alur kerja data, ia menyalurkan ketelitian yang sama pada kecintaannya terhadap fotografi.
Topics
Scraping with seleniumSelenium web scraping tutorialPython selenium scrape website
Daftar Isi

Ambil data halaman web cukup dengan bertanya

Cukup bilang apa yang kamu butuhkan dalam bahasa Inggris sederhana. Atau lebih baik lagi, tak perlu bilang apa-apa.

Coba Thunderbit gratis
Ekstrak Data menggunakan AI
Dengan mudah transfer data ke Google Sheets, Airtable, atau Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week