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!