Web scraping dengan Python didasarkan pada dua pustaka utama: requests untuk mengunduh halaman web dan BeautifulSoup untuk mengekstrak datanya.
Dalam artikel ini, kamu akan mempelajari cara menginstalnya, menulis skrip pertamamu, dan menyimpan hasilnya, meskipun kamu belum pernah belajar pemrograman.
Prasyarat untuk melakukan scraping dengan Python

Sebelum kamu memulainya, ada tiga syarat yang harus dipenuhi. Berikut ini adalah syarat-syarat tersebut dalam urutan yang logis.
1. Pengetahuan dasar tentang pemrograman
Kamu harus tahu tentang dasar-dasar pemrograman : variabel, struktur kontrol, fungsi, kamus, pengelolaan berkas, dan pustaka. Konsep-konsep ini memungkinkanmu untuk memahami logika skrip, memproses data yang diperoleh, dan menangani kesalahan dengan benar.
2. Menguasai struktur halaman web (HTML, CSS)
Python tidak melihat halaman web seperti yang kamu lihat. Python hanya melihat kode HTML yang membentuk halaman tersebut. Jika kamu ingin mengambil informasi tertentu, kamu harus tahu di mana letaknya dalam kode tersebut; jika tidak, Python tidak dapat mengekstraknya.

3. Memahami permintaan HTTP (GET, POST)
Sebelum membaca kode suatu halaman, Python harus meminta kode tersebut dari situs melalui sebuah permintaan. Sebuah Dapatkan permintaan memuat ulang halaman, sedangkan sebuah permintaan POST mengirimkan data ke situs tersebut. Tanpa pemahaman ini, skripmu tidak akan bisa memuat halaman maupun informasi yang terkandung di dalamnya.
Hal penting lainnya: pengikisan web berbeda dengan crawling. Proses crawling menjelajahi semua halaman di sebuah situs web untuk mendata dan menganalisisnya. Sedangkan proses scraping hanya menargetkan informasi tertentu. Perbedaan ini berguna untuk merencanakan pekerjaanmu dengan baik.

Apa saja alat bantu penting untuk web scraping dengan Python?
Sebagai langkah awal, kamu harus menyiapkan lingkungan kerja dalam tiga tahap: menginstal Python, mengisolasi proyekmu, lalu menambahkan pustaka yang diperlukan.
1. Menginstal Python
Unduh Python dari situs resmi python.org. Saat menginstalnya di Windows, pastikan untuk mencentang opsi Tambahkan Python ke PATH. Kotak ini menambahkan folder Python dan subfolder Scripts\ di PATH, sehingga perintah tersebut pip tersedia langsung melalui baris perintah.
Dari Python 3.4, pip sudah disertakan secara default. Ini adalah pengelola paket yang memungkinkanmu menginstal semua pustaka yang kamu butuhkan. Jika suatu saat tidak dikenali, perintah python -m pip selalu berhasil.
2. Mempersiapkan lingkungan virtual
A lingkungan virtual memisahkan pustaka-pustaka dari proyek Python-mu, tanpa mengganggu aplikasi lain di komputermu. Kamu dapat membuatnya dengan python -m venv venv, lalu aktifkan. Dengan demikian, instalasi-instalasi tersebut akan tetap khusus untuk proyek ini.
3. Instal pustaka utama untuk melakukan scraping
A Perpustakaan adalah kumpulan fungsi yang sudah diprogram dan dapat langsung kamu gunakan dalam kode kamu. Fitur ini menghindarkan kamu dari menulis ulang semuanya sendiri dan mempermudah tugas-tugas yang berulang. Berikut ini adalah yang utama:

- Requests : mengirimkan permintaan HTTP dan mengambil konten halaman web. Ini merupakan dasar dari semua proses scraping.
- BeautifulSoup : menganalisis kode HTML dan mengekstrak informasi menggunakan pemilih yang praktis seperti find(), find_all() Di mana select().
- Selenium : berguna ketika konten dihasilkan secara dinamis menggunakan JavaScript. Fitur ini mensimulasikan peramban sungguhan dan berinteraksi dengan halaman tersebut.
- lxml : sebuah alat analisis HTML dan XML yang sangat cepat, dengan kinerja yang lebih baik daripada BeautifulSoup, tetapi agak lebih rumit untuk dikuasai.
- Playwright : alternatif modern untuk Selenium, yang seringkali lebih cepat.
- Scrapy : sebuah kerangka kerja yang tangguh untuk proyek-proyek penggalian data berskala besar, yang mampu mengelola beberapa halaman dan beberapa situs secara bersamaan.
Bagaimana cara melakukan web scraping dengan Python?
Berikut ini adalah panduan langkah demi langkah untuk memulai proyek scraping pertamamu. Setiap langkah dilengkapi dengan sebuah potongan kode siap untuk disalin.
Langkah 1: Menginstal pustaka (requests dan beautifulsoup4)
Kamu memerlukan dua pustaka: requests untuk mengambil halaman-halaman tersebut dan beautifulsoup4 untuk mengekstrak datanya. Instal semuanya sekaligus dengan pip :
permintaan pemasangan pip beautifulsoup4
Apakah pip tidak dikenali, gunakan python -m pip install requests beautifulsoup4, yang akan berfungsi terlepas dari pengaturan PATH-mu. Selanjutnya, awali skripmu dengan dua baris berikut:
import requests
from bs4 import BeautifulSoup
Langkah 2: Buat permintaan HTTP dan ambil konten
Setelah pustaka-pustaka tersebut siap, kamu dapat mengirimkan sebuah Permintaan HTTP menuju halaman web dan menampilkan isinya. Ingatlah untuk menggunakan’URL lengkap dari halaman tujuan:
permintaan impor
url = "https://exemple.com"
page = requests.get(url)
print(page.text) # Menampilkan kode HTML dari halaman
Ini, page.text berisi seluruh kode HTML dari situs yang akan kamu analisis.
Langkah 3: Memparser HTML dengan BeautifulSoup
Sekarang setelah kamu mendapatkan kontennya, kamu bisa menganalisisnya dengan BeautifulSoup. Langkah ini mengubah HTML biasa dalam struktur yang mudah dijelajahi:
from bs4 import BeautifulSoup
sup = BeautifulSoup(page.text, "html.parser")
# Contoh: menampilkan judul halaman
print(sup.title.string)
Langkah 4: Ekstrak data spesifik (judul, tautan, dll.)
Terima kasih kepada BeautifulSoup, kamu bisa menargetkan tag HTML tertentu : judul, tautan, paragraf, dll. Dua contoh yang paling umum adalah:
# Ekstrak semua judul <h2>
for judul in sup.find_all("h2"):
print(judul.get_text())
# Ekstrak semua tautan <a>
for lien in soup.find_all("a"):
print(link["href"])
Langkah 5: Menyimpan data (CSV, JSON)
Setelah data kamu diekstraksi, kamu bisa menyimpan ke dalam berkas untuk digunakan kembali nanti. Format CSV cocok untuk lukisan, yang JSON data terstruktur.
Contoh dalam CSV :
impor csv
titles = [title.get_text() for title in soup.find_all("h2")]
with open("hasil.csv", "w", newline="", encoding="utf-8") as f:
penulis = csv.writer(f)
penulis.writerow(["Judul"])
untuk t dalam titres:
writer.writerow([t])
Contoh dalam JSON :
import json
lien = [lien["href"] for lien in soup.find_all("a")]
with open("liens.json", "w", encoding="utf-8") as f:
json.dump(liens, f, indent=4, ensure_ascii=False)
Tutorial ini ditujukan untuk proyek kecil, seperti melakukan scraping pada situs statis. Dalam praktiknya, kamu akan segera menghadapi tantangan yang lebih rumit:
- Mengelola penomoran halaman : gulir ke beberapa halaman untuk melihat semuanya.
- Mengelola formulir : mengirimkan data melalui permintaan POST untuk mendapatkan hasil yang telah difilter.
- Menyiasati pembatasan : tambahkan header identifikasi yang realistis dan melalui proxy untuk menghindari macet.
Mengapa web scraping dengan Python?
itu scraping web dengan Python membuka banyak peluang nyata bagi Anda. Berikut adalah berbagai kegunaan yang membuat praktik ini benar-benar bermanfaat dalam kehidupan sehari-hari.
- Pelacakan harga dan e-commerce : kamu mengumpulkan lembar data produk untuk memantau perkembangan tarif, membandingkan penawaran dari para pesaing, dan menemukan peluang terbaik secara real-time.
- Analisis ulasan pelanggan : Anda mengumpulkan komentar dari berbagai situs web untuk mengidentifikasi tren, memahami harapan konsumen, dan meningkatkan suatu produk atau layanan.

- Agregasi konten : Anda mengumpulkan artikel blog atau berita dari berbagai sumber untuk membuat platform yang selalu terupdate.
- Penelitian dan pemantauan : kamu mengumpulkan data untuk penelitian, memantau publikasi, atau mengamati sektor tertentu.
Dalam praktiknya, web scraping menghemat waktu berjam-jam yang biasanya dihabiskan untuk menyalin dan menempel secara manual. Satu skrip yang dirancang dengan baik dapat mengambil dan memperbarui data kamu secara otomatis, sesuai frekuensi yang kamu tentukan.
Apa saja praktik terbaik untuk web scraping dengan Python?
Web scraping bukan sekadar mengekstrak data. Hal ini juga harus dilakukan dengan cara efektif, bertanggung jawab, dan berkelanjutan, kalau tidak, kamu bisa dengan cepat diblokir. Berikut ini aturan yang harus diikuti:
- Hormati file robots.txt : terdapat di akar sebuah situs (mis. exemple.com/robots.txt), file tersebut menunjukkan halaman-halaman yang diizinkan atau dilarang untuk di-scraping. Silakan periksa file tersebut sebelum menjalankan skripmu.
- Menjaga frekuensi permintaan yang wajar : tambahkan jeda di antara setiap permintaan untuk mencegah server kewalahan dan agar kamu tidak diblokir.
- Gunakan User-Agent yang sesuai : mengisi header User-Agent yang secara jelas mengidentifikasi robotmu, bukan nilai default dari requests, yang sering kali diblokir secara otomatis.
- Mengelola kesalahan dan pengecualian : letakkan permintaanmu di dalam blok penanganan kesalahan. Halaman yang tidak tersedia tidak boleh membuat seluruh programmu macet.
- Menggunakan proxy dan rotasi IP : pada volume yang besar, menggunakan beberapa alamat IP secara bergantian dapat mencegah agar satu alamat IP tidak terdeteksi dan kemudian diblokir.
- Meminimalkan jumlah permintaan : hanya ambil halaman-halaman yang benar-benar kamu butuhkan. Semakin sedikit permintaan, semakin ringan beban server, dan semakin kecil risiko terdeteksi.
- Tetap transparan : jika memungkinkan, cantumkan sebuah alamat email kontak di dalam User-Agent. Dengan demikian, pengelola situs dapat menghubungimu alih-alih memblokirmu.
- Memisahkan proses ekstraksi dan pencadangan : pertama-tama ambil datanya, lalu simpan dalam berkas CSV atau basis data. Jika proses pengolahan gagal, data yang telah kamu kumpulkan tidak akan hilang.
- Gunakan selektor yang andal : mengutamakan atribut yang stabil seperti id Di mana data-* daripada kelas CSS yang sering berubah. Skripmu akan lebih tahan terhadap pembaruan situs.
- Buat dokumentasi kode kamu : jelaskan langkah-langkah utama dan catat tanggal pengambilan datamu. Struktur sebuah halaman terus berkembang, dan kamu akan lebih cepat memahami apa yang perlu diperbaiki saat terjadi kesalahan.
FAQ
Apa kerangka kerja terbaik untuk web scraping di Python?
Tidak ada kerangka kerja tunggal yang 'terbaik', karena semuanya tergantung pada tingkat kerumitan proyekmu.

- Untuk ekstraksi sederhana, Requests dan BeautifulSoup sudah lebih dari cukup.
- Ketika sebuah situs web menggunakan banyak JavaScript, lalu lanjut ke Selenium Di mana Playwright.
- Terakhir, untuk proyek berskala besar, Scrapy tetap menjadi pilihan yang paling tepat berkat performa dan strukturnya yang kokoh.
Bagaimana cara mengikis situs web di Python?
Proses ini didasarkan pada tiga tahap utama :
- Kamu mengirimkan sebuah Permintaan HTTP ke halaman tujuan.
- Kamu menganalisis struktur HTML telah diterima.
- Kamu mengekstrak data yang kamu minati, lalu simpanlah.
Apa peran web scraper?
itu peran web scraper adalah menjelajahi halaman web secara otomatis untuk mengekstrak data tertentu: teks, harga, gambar, atau tautan. Alat ini bertindak sebagai perantara antara situs web dan kamu, dengan mengubah informasi mentah menjadi data yang dapat dimanfaatkan.

Bagaimana cara menggunakan BeautifulSoup di Python?
BeautifulSoup adalah pustaka yang dirancang untuk menganalisis kode HTML suatu halaman dan dengan mudah menemukan tag yang berisi informasi yang akan diekstraksi. Secara praktis, kamu menggabungkan sebuah permintaan HTTP dengan Requests, lalu kamu mengurai isinya dengan BeautifulSoup untuk menelusuri struktur dan mengambil data yang diinginkan.
Bagaimana cara melakukan scraping pada situs web dengan konten dinamis yang menggunakan JavaScript?
Beberapa situs sangat bergantung pada JavaScript untuk menampilkan isinya. Dalam hal ini, solusi konvensional seperti Requests tidak lagi cukup. Maka, kamu harus menggunakan alat yang mampu mensimulasikan peramban sungguhan, seperti Selenium Di mana Playwright, untuk memuat dan berinteraksi dengan halaman tersebut.
Bahasa apa yang paling umum digunakan untuk web scraping?
Python saat ini merupakan bahasa pemrograman yang paling populer untuk web scraping, berkat kesederhanaannya dan kekayaan pustaka khusus yang dimilikinya. Meskipun demikian, kamu juga dapat mengotomatiskan...’ekstraksi data dengan PHP, meskipun teknik ini masih kurang umum.
Apakah web scraping legal?
Itu legalitas web scraping adalah pertanyaan yang rumit. Semuanya tergantung pada cara kamu melakukannya, serta kepatuhan terhadap kondisi penggunaan lokasi dan jenis data yang dikumpulkan. Di Prancis, web scraping adalah diperbolehkan dalam beberapa kasus, tetapi hal itu dapat menjadi ilegal jika melanggar hak akses, ketentuan penggunaan suatu situs, atau undang-undang mengenai data pribadi.
Singkatnya, web scraping dengan Python membuka segudang kemungkinan yang luar biasa! Bagaimana denganmu, apa saja pengalaman atau pertanyaanmu? Jangan ragu untuk membagikannya di kolom komentar, kami tidak sabar untuk membacanya!





