Web scraping for machine learning - how to build quality training datasets - DataImpulse
  • Published:
  • Last Updated:
  • Umum
  • 7 min read

Model machine learning hanya sebaik data yang dipelajarinya, dan bagi sebagian besar tim data tersebut berasal dari web. Pengumpulan data machine learning, yaitu mengumpulkan, membersihkan, dan menyusun contoh dunia nyata menjadi dataset pelatihan, merupakan bagian yang sangat menentukan kualitas model. Panduan ini membahas web scraping untuk machine learning dari awal hingga akhir: cara membangun dataset pelatihan berkualitas, arti “berkualitas”, proses langkah demi langkah, pembersihan yang paling penting, batasan hukum, dan alasan pengumpulan dalam skala besar menggunakan proxy.

Saya Andrii Byzov, seorang CMO paruh waktu dengan pendekatan AI-Native yang membangun pipeline data web untuk ML dan analitik. Berikut ini kualitas dataset yang memengaruhi performa model, alur kerja praktis dari scraping hingga dataset beserta kode, serta cara residential proxy menjaga pengumpulan tetap skalabel dan beragam.


Fakta Utama

  • Kualitas, deduplikasi, dan akurasi label sering kali lebih penting daripada volume mentah. Dataset yang bersih, beragam, dan berlabel baik dapat melatih model yang lebih baik daripada dataset lebih besar yang penuh noise, meskipun skala tetap membantu setelah kualitas terkendali.
  • Web adalah sumber yang umum untuk banyak dataset ML, seperti teks, gambar, harga, ulasan, dan listing, yang dikumpulkan melalui scraping ketika tidak ada API, feed berlisensi, atau dataset terbuka yang sesuai.
  • Untuk tugas yang sensitif terhadap lokasi, gunakan pengumpulan yang memahami wilayah. Ketika bahasa, harga, atau ketersediaan berbeda menurut lokasi, mengambil contoh dari banyak wilayah (melalui proxy dengan geo-targeting) menghindarkan dataset yang timpang.
  • Scraping ber-volume tinggi pada situs yang membatasi laju akses sering menggunakan proxy. Satu IP dapat segera diblokir, sehingga pengumpulan besar mengandalkan rotating residential IP, tetapi proxy tidak mengesampingkan ketentuan situs.
  • Cara Anda memperoleh data penting dari sisi hukum. Dalam Bartz v. Anthropic (2025), pengadilan memutuskan bahwa pelatihan menggunakan buku yang diperoleh secara sah merupakan penggunaan wajar berdasarkan fakta perkara tersebut, tetapi menolak penggunaan wajar untuk membangun perpustakaan dari salinan bajakan. Asal-usul data merupakan bagian dari kepatuhan.

Apa yang Membuat Dataset Pelatihan Menjadi Baik?

Sebelum melakukan scraping, pahami sasaran Anda. Dataset pelatihan berkualitas memiliki lima ciri:

  • Relevansi: contohnya sesuai dengan tugas dan distribusi yang akan dilihat model Anda dalam produksi.
  • Keberagaman: sumber, wilayah, dan kasus batas yang bervariasi, agar model melakukan generalisasi alih-alih menghafal satu bagian saja.
  • Label bersih: anotasi yang akurat dan konsisten; noise pada label membatasi akurasi yang dapat Anda capai.
  • Keseimbangan: kelas dan segmen terwakili dalam proporsi yang masuk akal, bukan didominasi oleh apa pun yang paling mudah di-scrape.
  • Keterkinian: cukup baru sehingga pola masih berlaku, dengan rencana pembaruan seiring perubahan dunia.

Sebagian besar masalah “data tambahan tidak membantu” dapat ditelusuri pada lemahnya salah satu aspek ini, biasanya duplikasi, noise label, atau dataset yang timpang pada satu sumber. Inilah fokus panduan ini; untuk panduan membeli proxy, lihat proxy terbaik untuk pelatihan ML, dan untuk mengetahui jebakan umum, lihat kesalahan berulang tim saat mengumpulkan data pelatihan AI.


Cara Membangun Dataset Pelatihan dengan Web Scraping

Langkah 1. Tentukan skema dan label. Tentukan field dan kumpulan label yang tepat sebelum mengumpulkan data, yaitu isi setiap contoh dan cara pemberian tagnya. Menyusun dari kebutuhan tugas model membantu mencegah pengumpulan data yang tidak dapat Anda gunakan.

Langkah 2. Tentukan sumber dan lakukan scraping dalam skala besar. Identifikasi situs yang memuat contoh Anda dan lakukan scraping melalui proxy untuk mendukung volume dan keberagaman wilayah. Beri tag sumber dan label pada setiap contoh saat Anda mengumpulkannya.



import requests
from bs4 import BeautifulSoup

HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                         "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}
# Rotating residential proxies: scale collection without IP blocks, and pull
# region-diverse examples so the dataset isn't skewed to one location.
proxies = {"http":  "http://LOGIN__cr.us;sid.ml1:[email protected]:823",
           "https": "http://LOGIN__cr.us;sid.ml1:[email protected]:823"}

def collect(urls, label):
    """Scrape raw text examples and tag each with its source + label."""
    rows = []
    for url in urls:
        try:
            r = requests.get(url, headers=HEADERS, proxies=proxies, timeout=30)
            r.raise_for_status()
        except requests.RequestException:
            continue
        text = BeautifulSoup(r.text, "html.parser").get_text(" ", strip=True)
        rows.append({"text": text, "label": label, "source": url})
    return rows






















Langkah 3. Bersihkan dan lakukan deduplikasi. Data hasil scraping mentah penuh noise dan duplikat, dan duplikat adalah jalan tercepat menuju model yang bias serta overfit. Buang sampel kosong dan terlalu pendek, normalisasi teks, lalu hapus duplikat identik maupun yang hampir sama sebelum melakukan hal lain.



import hashlib, re

def clean(t):
    return re.sub(r"\s+", " ", t).strip().lower()

def dedup(rows, min_len=40):
    """Drop empties, too-short samples, and exact duplicates — noisy,
    duplicated data is the fastest way to a biased, overfit model."""
    seen, out = set(), []
    for row in rows:
        text = row["text"]
        if not text or len(text) < min_len:
            continue
        key = hashlib.sha1(clean(text).encode()).hexdigest()
        if key in seen:
            continue
        seen.add(key)
        out.append(row)
    return out

urls = ["https://example.com/a", "https://example.com/b"]   # your source list
dataset = dedup(collect(urls, label="positive"))
print(f"{len(dataset)} deduplicated examples")























Langkah 4. Beri label dan susun struktur. Terapkan label secara konsisten, secara terprogram jika memungkinkan (supervisi lemah, heuristik), dengan peninjauan manusia pada sampel untuk mengukur kualitas label. Simpan dataset dalam format terstruktur dan berversi (JSONL/Parquet) agar Anda dapat mereproduksi proses pelatihan.

Langkah 5. Validasi kualitas. Periksa keseimbangan kelas, distribusi sumber, dan bias yang jelas sebelum pelatihan. Audit singkat, yaitu jumlah contoh per kelas, per wilayah, dan per sumber, dapat menemukan ketimpangan yang diam-diam merusak performa model.


Mengapa Proxy Penting untuk Pengumpulan Data ML

Dua masalah membuat pengumpulan data machine learning dalam skala besar gagal tanpa proxy. Volume: dataset pelatihan memerlukan ribuan hingga jutaan contoh, sementara situs membatasi laju akses dan memblokir crawling agresif, sehingga satu IP segera diblokir. Keberagaman: jika setiap contoh berasal dari satu lokasi, dataset mewarisi bias tersebut; karena itu, Anda memerlukan contoh dari banyak wilayah. residential proxy DataImpulse ($1/GB, rotating, 195 negara) membantu mengatasi keduanya: pool rotating yang besar mempertahankan volume, dan geo-targeting mengambil contoh beragam wilayah untuk tugas yang sensitif terhadap lokasi. Namun, meski proxy membantu Anda mengumpulkan data, proxy tidak mengesampingkan ketentuan situs. Untuk gambaran yang lebih luas tentang data yang dikumpulkan dari web, lihat panduan kami mengenai data alternatif.

Apakah Legal Melakukan Scraping Data untuk Pelatihan ML?

Pengumpulan dan pelatihan adalah dua pertanyaan hukum yang terpisah. Pengumpulan: aturan umum tetap berlaku; data publik yang bukan data pribadi pada umumnya berisiko lebih rendah, tetapi tetap bergantung pada hak cipta, ketentuan situs, kontrol akses, dan hukum privasi. Hindari konten yang memerlukan login, data pribadi, dan tindakan melewati kontrol akses. Pelatihan: dalam Bartz v. Anthropic (2025), pengadilan AS memutuskan bahwa pelatihan menggunakan buku yang diperoleh secara sah merupakan penggunaan wajar berdasarkan fakta perkara tersebut, tetapi menolak penggunaan wajar untuk membangun perpustakaan dari salinan bajakan. Jadi, cara Anda memperoleh data sama pentingnya dengan cara Anda menggunakannya. Pastikan asal-usul data jelas, hormati robots.txt dan ketentuan situs, serta dapatkan nasihat hukum untuk model komersial. Untuk kerangka lengkapnya, lihat apakah web scraping legal. Ini adalah informasi umum, bukan nasihat hukum.


Pertanyaan yang Sering Diajukan

Apa itu pengumpulan data machine learning?

Ini adalah proses mengumpulkan, membersihkan, dan menyusun contoh dunia nyata menjadi dataset yang dapat digunakan untuk melatih model. Bagi sebagian besar tim, sumber utamanya adalah web publik, seperti teks, gambar, harga, ulasan, dan listing, yang dikumpulkan melalui scraping ketika tidak ada API atau feed berlisensi, lalu dideduplikasi, diberi label, dan divalidasi.

Berapa banyak data yang saya perlukan untuk melatih model?

Hal itu bergantung pada tugas dan model, tetapi kualitas serta keberagaman lebih penting daripada jumlah mentah. Dataset yang lebih kecil, bersih, seimbang, dan berlabel baik biasanya lebih unggul daripada dataset lebih besar yang penuh noise. Berfokuslah pada penghapusan duplikat dan noise label serta cakupan kasus yang akan dilihat model Anda dalam produksi sebelum mengejar volume.

Mengapa deduplikasi sangat penting untuk data pelatihan?

Duplikat memberi bobot berlebih pada hal yang berulang, membuat model bias dan menaikkan skor evaluasi secara tidak wajar (contoh yang sama dapat masuk ke set latih dan set uji). Menghapus duplikat identik dan yang hampir sama adalah salah satu langkah pembersihan paling berdampak karena meningkatkan generalisasi dan membuat metrik Anda dapat dipercaya.

Apakah saya memerlukan proxy untuk melakukan scraping data pelatihan ML?

Untuk scraping ber-volume tinggi pada situs yang membatasi laju akses berdasarkan IP, biasanya ya. Membangun dataset berarti banyak request, dan satu IP dapat segera diblokir. Rotating residential proxy mempertahankan volume dan memungkinkan Anda mengambil contoh dari beragam wilayah, tetapi tidak mengesampingkan ketentuan situs, jadi kumpulkan data secara bertanggung jawab. (API, feed berlisensi, atau dataset terbuka seperti Common Crawl terkadang dapat menghindari scraping sepenuhnya.)

Apakah legal melakukan scraping data untuk melatih model?

Pengumpulan dan pelatihan adalah pertanyaan yang terpisah. Mengumpulkan data publik yang bukan data pribadi umumnya berisiko lebih rendah (namun tidak otomatis jelas karena hak cipta, ToS, kontrol akses, dan hukum privasi tetap berlaku); hindari login, data pribadi, dan tindakan melewati kontrol. Untuk pelatihan, Bartz v. Anthropic (2025) memutuskan bahwa pelatihan menggunakan buku yang diperoleh secara sah merupakan penggunaan wajar berdasarkan fakta perkara tersebut, tetapi menolaknya untuk perpustakaan bajakan. Asal-usul data penting. Hormati ketentuan situs dan dapatkan nasihat hukum untuk penggunaan komersial. Bukan nasihat hukum.


Kesimpulan

Membangun dataset pelatihan berkualitas adalah sebuah proses, bukan sekadar unduhan: tentukan skema, lakukan scraping pada sumber yang tepat dalam skala besar, lakukan deduplikasi dan pembersihan secara menyeluruh, beri label secara konsisten, lalu validasi keseimbangan dan biasnya. Sebagian besar data berada di web, sehingga lapisan pengumpulan yang beragam secara geografis, ber-volume tinggi, dan tidak diblokir memungkinkan seluruh proses lainnya berjalan. Itulah yang disediakan residential proxy. Pastikan asal-usul data jelas dan batasan hukum tetap diperhatikan, maka pengumpulan data machine learning Anda menghasilkan dataset yang benar-benar dapat dipelajari model. Untuk infrastrukturnya, lihat proxy terbaik untuk pelatihan ML dan proxy terbaik untuk web scraping.

Terakhir diperbarui: 25 Juni 2026.



Share article: