Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Belajar bagaimana cara melakukan web scraping menggunakan Python. Kamu akan belajar cara mengumpulkan data dari website menggunakan library BeautifulSoup dan Requests.
Web scraping adalah salah satu keterampilan yang sangat berguna di dunia digital saat ini. Dengan kemampuan ini, kita bisa mengumpulkan data dari berbagai sumber di internet secara otomatis. Dalam blog ini, kita akan membahas cara melakukan web scraping menggunakan Python, khususnya dengan menggunakan library requests dan BeautifulSoup. Mari kita mulai!
Lebih suka nonton video? silakan tonton video tutorial ini:
Belajar web scraping penting karena keahlian ini memungkinkan kita untuk mengumpulkan data dari berbagai sumber di internet secara otomatis. Hal ini memudahkan analisis dan pengambilan keputusan berdasarkan informasi yang relevan. Kemampuan ini juga dapat dimanfaatkan dalam berbagai bidang, seperti penelitian, pemasaran, dan pengembangan produk.
Web scraping umumnya melibatkan tiga tahapan utama:
Untuk praktik kali ini, kita akan menggunakan website scrapethissite.com. Website ini didedikasikan untuk teman-teman yang ingin mencoba atau mempraktikkan ilmu web scraping. Mari kita lihat contoh daftar negara yang akan kita ambil datanya.
Pertama-tama, kita perlu menginstal package requests untuk mengambil konten HTML dari website. Kita juga akan menginstal BeautifulSoup untuk mengekstrak informasi dari HTML. Berikut adalah perintah untuk menginstalnya:
pip install requests beautifulsoup4
Setelah itu, kita bisa mulai menulis kode. Kita akan memulai dengan mengimpor library yang diperlukan dan membuat request ke URL yang kita pilih:
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.scrapethissite.com/pages/simple/')
soup = BeautifulSoup(response.text, "html.parser")
Setelah kita mendapatkan respons, kita dapat mencetak kode status dan konten HTML-nya untuk memastikan semuanya berjalan dengan baik.
Setelah mendapatkan data HTML, langkah selanjutnya adalah menganalisa struktur website. Kita perlu mencari tahu di mana data yang kita butuhkan berada. Salah satu cara untuk melakukannya adalah dengan klik kanan pada halaman dan memilih “Inspect” untuk melihat struktur HTML-nya.
Di sini, kita akan mencari elemen yang berisi nama negara, ibu kota, dan populasi. Kita akan mencari ID atau kelas yang lebih spesifik untuk memastikan kita mengambil data yang tepat. Misalnya, kita bisa menemukan elemen dengan kelas country-name untuk nama negara, country-capital untuk ibu kota, dan country-population untuk populasi.
Setelah kita mengetahui di mana data yang kita butuhkan berada, saatnya untuk mengekstrak data tersebut. Kita akan menggunakan BeautifulSoup untuk melakukan parsing data HTML. Mari kita ambil data yang kita butuhkan:
country_blocks = soup.find_all("div", class_="col-md-4 country")
result = []
for block in country_blocks:
name_element = block.find("h3", class_="country-name")
country_name = name_element.get_text(strip=True)
capital_element = block.find("span", class_="country-capital")
capital_name = capital_element.get_text(strip=True)
population_element = block.find("span", class_="country-population")
population_name = population_element.get_text(strip=True)
result.append({"name": country_name, "capital": capital_name, "population": population_name})
# for item in result:
# print(f"Country: {item['name']} - Capital: {item['capital']} - Population: {item['population']}")
Kita menggunakan find_all
untuk mendapatkan semua elemen yang sesuai dengan kelas yang kita cari. Setelah itu, kita ambil teks dari setiap elemen dan menyimpannya dalam list results
.
Setelah kita mendapatkan semua data yang kita butuhkan, kita bisa mengekspornya ke dalam format CSV. Kita bisa menggunakan library csv yang sudah tersedia di Python. Berikut adalah cara untuk melakukannya:
with open("countries.csv", "w", newline="", encoding="utf-8") as csvfile:
fieldnames = ["name", "capital", "population"]
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for item in result:
writer.writerow(item)
Dengan menggunakan DictWriter
, kita bisa menulis header dan setiap baris data ke dalam file CSV. Setelah menjalankan kode ini, kita akan mendapatkan file countries.csv
yang berisi semua data yang telah kita ambil.
Web scraping tidak selalu semudah yang kita harapkan. Ada beberapa tantangan yang mungkin kita hadapi, seperti:
Kita akan belajar lebih kompleks lagi cara menangani tantangan ini di tutorial selanjutnya. Namun, untuk saat ini, kita sudah berhasil melakukan web scraping sederhana.
Web scraping adalah keterampilan yang sangat berguna untuk mengumpulkan data dari berbagai sumber di internet. Dengan menggunakan Python, requests, dan BeautifulSoup, kita dapat dengan mudah mengambil dan mengolah data yang kita butuhkan. Jangan ragu untuk mencoba sendiri dan eksplorasi lebih lanjut. Jika kalian memiliki pertanyaan atau tantangan yang ingin dibahas, silakan tulis di komentar!
Sampai jumpa di tutorial berikutnya!
Hai saya Hilman, membuat situs Sekolah Koding (Skodev) dan menulis buku untuk programmer (Halo Koding), Halo Koding . Sudah mengetik-ngetik alias programming sejak 2015. Semoga artikel dan situs ini bisa bantu karir kamu ya!