🎉 Diskon hingga 15% semua kelas Sekolah Stata! Presale & Early Bird

Scraping Data BLK menggunakan Silenium

🔥 Jangan Lewatkan: Kelas Ekonometrika Dasar Batch 15 🚀

Tanggal: 20 July 2026 | Investasi: Hanya 350k! 🌟

Gabung sekarang dan tingkatkan keterampilan Anda dengan praktisi terbaik! 📊💡

Daftar Sekarang 🔗
Open Access Policy Brief dan PPT Webinar Webinar “Melihat Indonesia dari Angkasa: Mudik, Ekonomi Lokal dan Kualitas Udara”

Open Access Policy Brief dan PPT Webinar Webinar “Melihat Indonesia dari Angkasa: Mudik, Ekonomi Lokal dan Kualitas Udara”

Rp 300.000

Informasi Lengkap

Scraping Data BLK Menggunakan Selenium: Panduan Lengkap

Pengenalan Scraping Data dengan Selenium

Apa itu Web Scraping?

Web scraping adalah teknik yang digunakan untuk mengambil data dari situs web. Dengan menggunakan alat seperti Selenium, kita bisa mengotomatisasi pengambilan data dalam jumlah besar dari halaman web yang memiliki konten dinamis. Ini sangat berguna bagi para peneliti atau pengembang yang memerlukan data terkini dari berbagai sumber.

Kenapa Menggunakan Selenium untuk Web Scraping?

Selenium sering dipilih untuk scraping karena kemampuannya dalam menangani halaman web yang dinamis, yang mengandalkan JavaScript untuk memuat konten. Tidak seperti scraping biasa menggunakan BeautifulSoup yang hanya membaca HTML statis, Selenium bisa berinteraksi dengan elemen halaman secara langsung seperti yang dilakukan pengguna biasa (misalnya mengklik, menggulir, atau mengisi form).

Instalasi Selenium untuk Web Scraping

Persiapan dan Instalasi

Sebelum memulai scraping, kita harus menyiapkan beberapa hal di lingkungan pengembangan kita. Langkah pertama adalah menginstal Selenium dan WebDriver yang dibutuhkan untuk menjalankan Selenium. Berikut adalah langkah-langkah instalasinya:

  1. Menginstal Selenium dan Dependencies:
    Pastikan untuk menginstal Selenium terlebih dahulu menggunakan pip:

    !pip install selenium
    
  2. Instalasi WebDriver:
    Untuk menggunakan Chrome sebagai browser, kita perlu menginstal chromium-chromedriver yang akan menghubungkan Selenium dengan browser Chrome.

    !apt-get update
    !apt install chromium-chromedriver
    !cp /usr/lib/chromium-browser/chromedriver /usr/bin
    
Menginstal Dependencies yang Diperlukan

Selain Selenium, kita juga memerlukan beberapa pustaka tambahan seperti pandas untuk mengelola data dan time untuk penanganan delay. Berikut cara instalasinya:

!pip install pandas
!pip install time

Mengenal Struktur Data BLK

Variabel yang Discrape

Data yang akan diambil dari situs kelembagaan.kemnaker.go.id terdiri dari beberapa variabel yang sangat penting, seperti:

Artikel Blog Sekolah Stata di indeks Oleh Google Scholar

Akses Google Scholar
  • Lokasi: Lokasi lembaga BLK
  • Nama: Nama lembaga
  • No: Nomor urut lembaga
  • Pimpinan: Nama pimpinan lembaga
  • Tahun: Tahun pendirian lembaga
  • Status: Status lembaga
  • Akreditasi: Status akreditasi lembaga
  • Luas Area: Luas area lembaga
  • Jumlah Pegawai: Jumlah pegawai yang ada
  • Sektor Potensial: Sektor yang dikelola oleh lembaga
  • Kejuruan: Bidang kejuruan yang diajarkan di lembaga
Scraping Data BLK menggunakan Silenium
Scraping Data BLK menggunakan Silenium

Mengatur Lingkungan Pengembangan dengan Selenium

Pengaturan Selenium WebDriver

Untuk memulai menggunakan Selenium, kita perlu mengonfigurasi WebDriver terlebih dahulu. Di sini, kita akan menggunakan Chrome WebDriver dalam mode headless (tanpa tampilan UI). Berikut adalah kode untuk memulai WebDriver:

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')  # Agar browser tidak muncul
driver = webdriver.Chrome(options=chrome_options)
Penggunaan Chrome WebDriver dalam Selenium

Chrome WebDriver adalah alat yang memungkinkan Selenium untuk mengendalikan browser Chrome. Dengan WebDriver ini, kita dapat membuka halaman web, berinteraksi dengan elemen-elemen dalam halaman, dan mengambil data.

Menyiapkan Fungsi untuk Scraping

Fungsi Screenshot

Kadang-kadang, kita perlu menangkap tampilan halaman saat scraping untuk dokumentasi atau debugging. Berikut adalah fungsi untuk mengambil screenshot menggunakan Selenium:

import time
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

def screenCap(driver):
    millis = int(round(time.time() * 1000))
    imgName = millis
    driver.save_screenshot(f"screenshot_{imgName}.png")
    img = mpimg.imread(f"screenshot_{imgName}.png")
    imgplot = plt.imshow(img)
    plt.show()
Fungsi Scrolling

Jika data yang ingin diambil tersebar di berbagai bagian halaman yang dapat digulir, kita perlu membuat fungsi untuk menggulir halaman:

def scroll(driver, timeout=1):
    last_height = driver.execute_script("return document.body.scrollHeight")
    while True:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(timeout)
        new_height = driver.execute_script("return document.body.scrollHeight")
        if new_height == last_height:
            break
        last_height = new_height

Langkah-Langkah Scraping Data BLK Menggunakan Selenium

Melakukan Scraping Data dengan Looping

Sekarang kita akan mulai dengan scraping data dari halaman web menggunakan loop untuk berpindah antar halaman:

df = pd.DataFrame(columns=['lokasi', 'nama', 'no', 'pimpinan', 'tahun', 'status', 'akreditasi', 'luas_area', 'jumlah_pegawai', 'sektor_potensial', 'kejuruan'])

for u in range(1, 227):  # Loop untuk halaman
    for i in range(1, 10):  # Loop untuk elemen pada halaman
        driver.get(f"https://kelembagaan.kemnaker.go.id/?page={u}&limit=9")
        element = driver.find_element_by_xpath(f"/html/body/naker-root/lemsar-front-page/...[{i}]").click()
        data = extract_data(driver)
        df = df.append(data, ignore_index=True)
Menangani Halaman yang Terdapat Banyak Data

Untuk halaman yang memiliki data lebih banyak, kita bisa menambahkan strategi pengguliran (scrolling) untuk mengakses seluruh konten.

Mengolah dan Menyimpan Data yang Diperoleh

Setelah data berhasil diambil, kita dapat mengolahnya menggunakan pandas dan menyimpannya dalam format CSV:

df.to_csv('data_tvet.csv', index=False)

Tips dan Trik dalam Scraping dengan Selenium

Mengatasi Tantangan pada Proses Scraping

Scraping data dari situs yang memiliki mekanisme proteksi seperti CAPTCHA atau pengaturan yang membatasi jumlah permintaan bisa menjadi tantangan. Namun, dengan menggunakan teknik-teknik tertentu seperti delay atau pengguliran halaman secara perlahan, kita dapat menghindari pemblokiran oleh server.

Kesimpulan

Scraping data menggunakan Selenium memungkinkan kita untuk mengambil data dari halaman web yang dinamis dengan cara yang efisien. Dengan langkah-langkah yang telah dijelaskan di atas, Sobat Stata kini dapat memulai proyek scraping data BLK atau data lainnya dari situs web yang mendukung JavaScript.

FAQ (Frequently Asked Questions)

  1. Apa yang dimaksud dengan Selenium dalam scraping?
    Selenium adalah pustaka yang digunakan untuk mengotomatisasi interaksi dengan browser, memungkinkan pengambilan data dari situs web dinamis.
  2. Apakah Selenium dapat digunakan untuk semua jenis situs web?
    Selenium sangat efektif untuk situs web yang memuat data dengan JavaScript, tetapi tidak efisien untuk halaman statis.
  3. Apakah saya perlu memahami JavaScript untuk menggunakan Selenium?
    Tidak, Anda hanya perlu tahu cara menavigasi halaman dan mengakses elemen melalui Selenium.
  4. Berapa lama waktu yang dibutuhkan untuk melakukan scraping dengan Selenium?
    Waktu yang dibutuhkan bergantung pada jumlah data dan kompleksitas halaman yang disaring.
  5. Apakah scraping data dari situs web legal?
    Pastikan untuk mematuhi ketentuan layanan situs web yang Anda scraping, karena beberapa situs mungkin memiliki larangan terhadap pengambilan data otomatis.

Leave a Comment

Scroll to Top