Post

Web Scraping

Web Scraping

📌 Pengenalan Web Scraping

Apa Itu Web Scraping?

Web scraping adalah teknik untuk mengumpulkan data secara otomatis dari sebuah halaman web. Teknik ini digunakan untuk mengambil informasi yang tersedia di internet dan menyusunnya dalam format yang lebih mudah diproses, seperti CSV atau database.

Dengan menggunakan Python, kita bisa memanfaatkan pustaka seperti requests untuk mengambil data dari web dan BeautifulSoup untuk memproses dan mengekstrak data dari HTML.


🛠 Instalasi

Sebelum memulai scraping, pastikan pustaka berikut telah terinstal:

1
pip install requests beautifulsoup4

Pustaka yang digunakan:

  • requests: Untuk mengambil data dari halaman web.
  • BeautifulSoup: Untuk memproses dan mengekstrak data dari HTML.
  • csv: Untuk menyimpan hasil scraping dalam format CSV.

🚀 Implementasi Web Scraping

Berikut adalah contoh implementasi scraping menggunakan Python untuk mengambil informasi negara dari situs scrapethissite.com.

📜 Contoh Kode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import requests
from bs4 import BeautifulSoup
import csv

# Step 1: Request halaman web
url = "https://www.scrapethissite.com/pages/simple/"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)

# Step 2: Parsing HTML
soup = BeautifulSoup(response.text, "html.parser")

# Step 3: Menemukan semua elemen negara
countries = soup.find_all("div", class_="col-md-4 country")

# Step 4: Menyiapkan list untuk menyimpan data sebelum ditulis ke CSV
data_negara = []

# Step 5: Loop untuk mengambil name, capital, population, dan area
for country in countries:
    name = country.find("h3", class_="country-name").text.strip()  # Nama negara
    capital = country.find("span", class_="country-capital").text.strip()  # Ibukota
    population = country.find("span", class_="country-population").text.strip()  # Populasi
    area = country.find("span", class_="country-area").text.strip()  # Luas wilayah

    print(name)
    print(capital)
    print(population)
    print(area)

    # Simpan ke list
    data_negara.append([name, capital, population, area])

# Step 6: Menyimpan data ke CSV
with open("negara.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerow(["Name", "Capital", "Population", "Area"])
    writer.writerows(data_negara)

print("Data berhasil disimpan ke negara.csv! 🎉")

🔍 Penjelasan Kode

1️⃣ Mengirim Request ke Website

  • requests.get(url, headers=headers): Mengunduh halaman web dengan user-agent agar tidak terdeteksi sebagai bot.

2️⃣ Parsing HTML

  • BeautifulSoup(response.text, "html.parser"): Mengubah teks HTML menjadi objek yang bisa diproses.

3️⃣ Menemukan Elemen Data

  • soup.find_all("div", class_="col-md-4 country"): Mencari semua elemen yang menyimpan informasi negara.

4️⃣ Mengekstrak Data

  • find("h3", class_="country-name").text.strip(): Mengambil nama negara.
  • find("span", class_="country-capital").text.strip(): Mengambil ibu kota.
  • find("span", class_="country-population").text.strip(): Mengambil populasi.
  • find("span", class_="country-area").text.strip(): Mengambil luas wilayah.

5️⃣ Menyimpan Data ke CSV

  • csv.writer(file).writerow(["Name", "Capital", "Population", "Area"]): Menulis header file CSV.
  • writer.writerows(data_negara): Menulis data yang telah dikumpulkan.

📌 Kesimpulan

Web scraping adalah teknik yang kuat untuk mengumpulkan data dari web. Dengan menggunakan requests dan BeautifulSoup, kita bisa mengambil dan memproses informasi dari berbagai situs web secara otomatis. Pastikan untuk selalu mematuhi aturan penggunaan website yang diakses!

💡 Tips:

  • Selalu gunakan User-Agent agar tidak mudah terdeteksi sebagai bot.
  • Periksa robots.txt dari situs web untuk memastikan scraping diperbolehkan.
  • Gunakan delay atau proxy jika scraping dalam jumlah besar.

🔗 Referensi Tambahan:

🚀 Bagikan proyek ini di GitHub.io agar lebih profesional!

This post is licensed under CC BY 4.0 by the author.