🔥 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 🔗| Pendahuluan |
|---|
| Web scraping adalah proses otomatisasi pengambilan data dari website. Artikel ini akan membahas cara scraping data dari MODI Kementerian ESDM, yang menyediakan informasi industri pertambangan di Indonesia. Kami akan menggunakan bahasa pemrograman Python dengan bantuan library Selenium. |
| Pengertian Web Scraping |
|---|
| Web scraping adalah teknik untuk mengekstrak informasi dari situs web secara otomatis menggunakan program komputer. Teknik ini sangat berguna untuk mengumpulkan data dalam jumlah besar yang tersedia secara publik. |
| Pengenalan Data Industri Pertambangan di Indonesia |
|---|
| Sumber Data MODI Kementrian ESDM |
| MODI (Mineral One Data Indonesia) adalah portal resmi dari Kementerian Energi dan Sumber Daya Mineral (ESDM) yang menyediakan informasi mengenai perusahaan pertambangan di Indonesia. Data ini sangat berharga untuk penelitian, analisis bisnis, dan pengambilan kebijakan. |
| Pentingnya Data Pertambangan |
| Data pertambangan memberikan gambaran menyeluruh tentang aktivitas industri ini, mulai dari jenis perusahaan, lokasi, hingga izin usaha. Informasi ini sangat penting untuk memahami kontribusi sektor pertambangan terhadap perekonomian nasional. |
| Persiapan Lingkungan Pengembangan |
|---|
| Instalasi Python |
| Python adalah bahasa pemrograman yang banyak digunakan untuk web scraping karena kemudahannya dan banyaknya library yang mendukung. Untuk memulai, pastikan Python telah terinstal di komputer Anda. |
| Instalasi Selenium |
Selenium adalah library Python yang memungkinkan kita untuk mengontrol browser secara otomatis. Instalasi Selenium dapat dilakukan dengan perintah !pip install selenium. |
| Membuat Fungsi-Fungsi Dasar |
|---|
| Fungsi Screenshot |
| Fungsi screenshot berguna untuk mengambil gambar dari halaman web saat proses scraping berlangsung. Ini membantu dalam debugging dan memastikan bahwa proses berjalan sesuai rencana. Berikut adalah contoh kode fungsi screenshot: |
python
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.image as mpimg
import timedef screenCap():millis = int(round(time.time() * 1000))
imgName=millis
driver.save_screenshot(“test”+str(imgName)+“.png”)
img=mpimg.imread(“test”+str(imgName)+“.png”)
imgplot = plt.imshow(img)
plt.show()
|3: Fungsi Scrolling | |
Beberapa halaman web memerlukan scrolling untuk memuat data sepenuhnya. Fungsi berikut ini memastikan bahwa kita dapat menggulir halaman hingga semua data dimuat: |
python
def scroll(driver, timeout):
scroll_pause_time = timeout
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
| Implementasi Web Scraping |
|---|
| Navigasi Halaman Web |
| Langkah pertama dalam scraping adalah menavigasi ke halaman web yang diinginkan. Berikut adalah cara kita menavigasi halaman web menggunakan Selenium: |
python
driver.get('https://modi.esdm.go.id/portal/dataPerusahaan/?page=2')
|Mengambil Data Perusahaan | | Setelah berada di halaman yang diinginkan, kita dapat mulai mengambil data perusahaan. Contoh berikut menunjukkan bagaimana mengambil data nama perusahaan: |
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECtry:nama_perusahaan = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.XPATH, ‘XPATH_TO_NAMA_PERUSAHAAN’))
).text
except Exception as e:
nama_perusahaan = “data kosong”
print(f”Error occurred: {e}“)
| H3: Menyimpan Data ke DataFrame | | Data yang diambil kemudian disimpan ke dalam DataFrame untuk analisis lebih lanjut. Pandas adalah library yang sangat berguna untuk tugas ini: |
python
import pandas as pd
df = pd.DataFrame(columns=[‘kodeperusahaan’, ‘namaperusahaan’, ‘jenisperusahaan’, ‘alamat’])
new_data = {
‘kodeperusahaan’: kodeperusahaan,
‘namaperusahaan’: namaperusahaan,
‘jenisperusahaan’: jenisperusahaan,
‘alamat’: alamat
}
df = df.append(new_data, ignore_index=True)
| Studi Kasus: Scraping Data Pertambangan |
|---|
| Percobaan pada Variabel Tunggal |
| Percobaan pertama kita akan fokus pada variabel tunggal seperti nama perusahaan. Ini akan membantu kita memahami dasar-dasar scraping sebelum melanjutkan ke data yang lebih kompleks. |
| Analisis Hasil Scraping | | Setelah data terkumpul, langkah berikutnya adalah analisis. Ini termasuk membersihkan data, menangani data yang hilang, dan memvisualisasikan temuan. |
| Tantangan dan Solusi |
|---|
| Keterbatasan Website |
| Website yang kita scrap mungkin memiliki batasan seperti anti-scraping measures atau perubahan struktur halaman. Kita harus siap menghadapi tantangan ini dengan teknik yang tepat. |
| Penanganan Error |
| Error handling adalah bagian penting dari proses scraping. Berikut adalah beberapa contoh bagaimana kita bisa menangani error saat scraping: |
python
try:
# Kode scraping
except Exception as e:
print(f"Error occurred: {e}")
| Kesimpulan |
|---|
| Web scraping adalah alat yang sangat kuat untuk mengumpulkan data secara otomatis. Dengan menggunakan Python dan Selenium, kita dapat mengekstrak data berharga dari MODI Kementerian ESDM untuk berbagai keperluan. Artikel ini memberikan panduan langkah demi langkah untuk memulai scraping data pertambangan di Indonesia. |
| FAQ |
|---|
| Q1: Apakah web scraping legal? |
| A1: Web scraping legal selama tidak melanggar syarat dan ketentuan penggunaan situs web yang bersangkutan. |
| Q2: Apakah perlu izin khusus untuk scraping data MODI Kementerian ESDM? |
| A2: Pastikan untuk memeriksa kebijakan penggunaan data pada situs MODI sebelum melakukan scraping. |
| Q3: Apa keuntungan menggunakan Selenium untuk web scraping? |
| A3: Selenium memungkinkan kita mengotomatisasi browser dan menangani halaman web dinamis, menjadikannya alat yang sangat berguna untuk scraping. |
| Q4: Apakah saya perlu keterampilan pemrograman untuk melakukan web scraping? |
| A4: Ya, pemahaman dasar tentang pemrograman dan HTML akan sangat membantu dalam proses web scraping. |
| Q5: Bagaimana cara menangani perubahan struktur halaman web? |
| A5: Anda perlu memperbarui kode scraping Anda untuk menyesuaikan dengan perubahan struktur halaman web. |
