Web scraping adalah teknik otomatis untuk mengekstrak data dari website. Ini berguna untuk mengumpulkan informasi, memantau harga, menganalisis tren, dan banyak lagi. Tutorial ini akan memandu Anda melalui dasar-dasar web scraping menggunakan Python dengan pustaka BeautifulSoup dan Requests.
**Persiapan:**
Sebelum memulai, pastikan Anda sudah menginstal Python dan pustaka yang diperlukan:
```bash
pip install beautifulsoup4 requests
```
**Langkah-Langkah Dasar:**
1. **Import Pustaka:** Awali kode Anda dengan mengimpor pustaka `requests` untuk mengambil konten website dan `BeautifulSoup` untuk mem-parsing HTML.
```python
import requests
from bs4 import BeautifulSoup
```
2. **Mengambil Konten Website:** Gunakan `requests.get()` untuk mengambil konten HTML dari URL target. Periksa status kode respons (200 berarti sukses).
```python
url = 'https://example.com'
response = requests.get(url)
if response.status_code == 200:
html_content = response.content
else:
print(f"Gagal mengambil halaman: {response.status_code}")
```
3. **Mem-parsing HTML dengan BeautifulSoup:** Buat objek `BeautifulSoup` dari konten HTML. Anda dapat menentukan parser HTML (misalnya, 'html.parser' atau 'lxml').
```python
soup = BeautifulSoup(html_content, 'html.parser')
```
4. **Mencari Elemen HTML:** Gunakan metode `find()` atau `find_all()` untuk mencari elemen HTML tertentu. `find()` mengembalikan elemen pertama yang cocok, sedangkan `find_all()` mengembalikan daftar semua elemen yang cocok. Anda dapat mencari berdasarkan tag, kelas, ID, atau atribut lainnya.
```python
# Mencari elemen dengan tag 'h1'
judul = soup.find('h1')
print(f"Judul: {judul.text if judul else 'Tidak ditemukan'}")
# Mencari semua elemen dengan kelas 'artikel'
artikel = soup.find_all('div', class_='artikel')
for art in artikel:
print(f"Isi Artikel: {art.text}")
```
5. **Ekstraksi Data:** Setelah menemukan elemen yang diinginkan, Anda dapat mengekstrak data yang relevan, seperti teks, atribut, atau URL.
```python
# Mengambil atribut 'href' dari semua tag 'a'
for link in soup.find_all('a'):
href = link.get('href')
print(f"Link: {href}")
```
6. **Menyimpan Data:** Simpan data yang diekstrak ke dalam format yang sesuai, seperti file CSV, JSON, atau database. Anda dapat menggunakan pustaka `csv` atau `json` di Python.
**Pertimbangan Etika dan Hukum:**
* **Robots.txt:** Selalu periksa file `robots.txt` website target untuk memahami aturan scraping yang diperbolehkan.
* **Beban Server:** Jangan membebani server website dengan permintaan yang berlebihan. Implementasikan jeda antara permintaan (misalnya, menggunakan `time.sleep()`).
* **Persyaratan Layanan:** Patuhi persyaratan layanan website. Beberapa website melarang scraping.
* **Hak Cipta:** Hormati hak cipta konten yang diekstrak.
**Contoh Sederhana:**
Katakanlah Anda ingin mengekstrak judul buku dan harganya dari halaman website toko buku. Setelah menganalisis HTML, Anda menemukan bahwa judul buku berada dalam tag `h2` dengan kelas 'judul-buku', dan harga berada dalam tag `span` dengan kelas 'harga'. Kode Anda akan terlihat seperti ini:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://contoh-toko-buku.com' # Ganti dengan URL toko buku
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
buku = soup.find_all('div', class_='buku')
for bk in buku:
judul = bk.find('h2', class_='judul-buku').text
harga = bk.find('span', class_='harga').text
print(f"Judul: {judul}, Harga: {harga}")
```
Ini hanyalah pengantar dasar. Web scraping bisa menjadi lebih kompleks, terutama dengan website yang menggunakan JavaScript untuk memuat konten. Untuk kasus tersebut, Anda mungkin perlu menggunakan pustaka seperti Selenium atau Scrapy. Ingatlah untuk selalu bertanggung jawab dan menghormati batasan website saat melakukan web scraping.
1920×1080 scrap drop agence web scraping from www.scrap-and-drop.fr
1920×1080 tuto tout comprendre au web scraping sans savoir coder sur tutocom from fr.tuto.com
1024×614 web scraping utiliser python pour scraper nimporte quel site from www.data-transitionnumerique.com