Menangkan trafik residensial 1 TB, iPhone 18 Pro Max + 33 hadiah lainnyaTop-up $50 = 1 TiketBergabung
Bisnis

Screen scraping: alat, contoh Python, dan otomatisasi

Mo

30 Oktober 2026

Scraping & otomasi

Screen scraping: alat, contoh Python, dan otomatisasi

Ringkas artikel ini dengan AI:

Halaman produk menampilkan judul, harga, dan ketersediaan, tetapi Anda membutuhkan detail tersebut dalam dataset yang bisa diperbarui dan dibandingkan. 

🔥

Panduan ini memakai Yozh Scraper dari CyberYozh untuk mendemonstrasikan screen scraping, mulai dari satu halaman hingga pengumpulan data yang bisa diulang.

Anda akan belajar cara memilih metode ekstraksi, memeriksa apakah hasilnya sesuai dengan halaman, dan menyimpan rekaman yang berguna. Setelah itu, kita akan membahas opsi Python dan otomatisasi untuk mengulang tugas tersebut, beserta pengaturan proxy saat lokasi atau konsistensi koneksi penting. 

💡

Apa yang dilakukan screen scraping

Screen scraping mengekstrak data yang ditampilkan melalui situs web, aplikasi desktop, atau antarmuka terminal. Teknik ini dapat membaca teks dari elemen antarmuka atau memakai optical character recognition (OCR) untuk mengenali teks pada gambar. 

Apa itu screen scraping?

Screen scraping adalah ekstraksi otomatis informasi yang ditampilkan melalui antarmuka pengguna. Screen scraper membaca informasi tersebut dan mengubahnya menjadi data yang dapat dipakai sistem lain, misalnya baris spreadsheet atau kolom dalam file JSON.

Cara kerja scraper bergantung pada sumbernya:

  • Halaman web: Browser memuat halaman produk, lalu scraper mengumpulkan judul, harga, dan ketersediaan dari konten yang sudah dirender.

  • Aplikasi lama (legacy): Otomatisasi membaca informasi inventaris atau pelanggan dari sistem bisnis lama yang tidak punya opsi ekspor yang memadai.

  • Gambar: Optical character recognition (OCR) mengubah teks pada tangkapan layar atau gambar hasil pindai menjadi karakter yang dapat dibaca mesin.

Bagaimana cara kerja screen scraping?

Pada halaman produk, misalnya Amazon, browser memuat antarmuka, aturan ekstraksi mengidentifikasi nilai, dan validasi memeriksa apakah hasilnya dapat dipakai. Prosesnya terdiri dari lima tahap:

  1. Buka halaman. Akses URL produk dengan pengaturan lokasi dan sesi yang dibutuhkan untuk tugas Anda.

  2. Tunggu konten yang diperlukan. Pastikan harga dan ketersediaan sudah termuat sebelum mengumpulkannya.

  3. Temukan dan ekstrak kolom data. Gunakan aturan pemilihan untuk mengambil judul produk, harga, mata uang, dan status stok.

  4. Validasi nilai. Periksa kolom yang hilang, mata uang yang tidak terduga, dan pesan galat yang tanpa sengaja terambil sebagai data produk.

  5. Simpan hasilnya. Simpan rekaman beserta URL sumber dan waktu pengumpulannya agar hasil bisa dibandingkan nanti.

Amazon scraper Anda dapat mengembalikan kolom yang diekstrak beserta tangkapan layar. Menyimpan keduanya membantu menyelidiki perbedaan: Anda bisa membandingkan nilai yang hilang atau salah dengan tampilan di browser dan menemukan di mana ekstraksi bermasalah.

Screen scraping vs. web scraping dan API

Pilih metode yang menyediakan kolom data yang dibutuhkan dengan pemrosesan tambahan seminimal mungkin. Periksa dulu apakah ada API atau ekspor yang berguna, lalu tentukan apakah data tersedia di HTML halaman atau memerlukan interaksi browser.

Metode

Yang dibaca

Kapan cocok

Kebutuhan pemeliharaan utama

API atau ekspor

Respons terstruktur atau file yang dapat diunduh

Sumber menyediakan kolom data yang Anda butuhkan

Pantau perubahan skema, persyaratan akses, dan kuota

Ekstraksi HTML langsung

HTML yang dikirim oleh server

Nilai sudah tersedia tanpa menjalankan JavaScript

Perbarui aturan ekstraksi saat markup berubah

Ekstraksi berbasis browser

Elemen halaman setelah dirender atau setelah interaksi

Konten bergantung pada JavaScript, filter, atau status sesi

Pelihara selektor, kondisi pemuatan, dan sesi

OCR atau otomatisasi desktop

Piksel gambar, teks terminal, atau kontrol aplikasi

Antarmuka menyediakan data tanpa opsi ekspor yang berguna

Periksa perubahan tata letak, pengenal kontrol, dan akurasi pengenalan

Screen scraping dan web scraping saling tumpang tindih. Merender situs web dan membaca elemen halamannya tetap termasuk web scraping; memakai browser tidak otomatis berarti menafsirkan piksel.

💡

Yozh Scraper cocok untuk jalur berbasis browser, di mana rendering, status halaman, dan pengaturan ekstraksi yang dapat dipakai ulang membantu membuat pengumpulan data bisa diulang.

Tools screen scraping: pilih berdasarkan sumber data

Tools web screen scraping yang tepat bergantung pada lokasi data muncul dan cara Anda mengaksesnya. Tools screen scraping open source mencakup otomatisasi browser dan OCR, sedangkan platform yang lebih luas juga mendukung proses desktop.

Yozh Scraper: layanan ekstraksi browser siap pakai

Yozh Scraper menyediakan API self-hosted yang memakai Playwright untuk memuat halaman web dan mengembalikan kolom terpilih, HTML, serta tangkapan layar. Preset dan batch job membantu Anda mengulang konfigurasi ekstraksi yang sudah teruji.

Instal dengan Docker; visual tester opsional berjalan terpisah dan membutuhkan Node.js. Perangkat lunaknya gratis dan open source, sedangkan hosting server, proxy berbayar, dan penggunaan penyedia AI opsional dikenai biaya tersendiri. Anda bisa memulai secara lokal tanpa mengaktifkan integrasi berbayar. Bagian berikutnya memakai Yozh untuk mengonfigurasi ekstraksi dan memverifikasi hasilnya.

Playwright: kontrol browser langsung dari Python

Pilih Playwright jika Anda ingin membuat skrip klik, filter, dan navigasi dengan Python. Playwright menyediakan otomatisasi browser, sementara kode Anda menentukan ekstraksi, validasi, dan penyimpanan. Anda yang memelihara selektor dan kondisi pemuatan.

Tesseract: pengenalan teks dari gambar

Tesseract menyediakan mesin OCR yang mengubah teks pada gambar menjadi keluaran yang dapat dibaca mesin. Padukan dengan tool tangkapan layar atau pengambil gambar saat teks yang dibutuhkan hanya ada dalam bentuk piksel.

UiPath: otomatisasi lintas antarmuka aplikasi

UiPath cocok untuk tugas yang melibatkan perangkat lunak desktop, sistem lama, dan banyak aplikasi sekaligus. Opsi ekstraksi antarmuka dan OCR-nya membantu mengotomatiskan proses di mana tool browser saja tidak dapat menjangkau semua informasi yang diperlukan.

Cara melakukan screen scraping dengan Yozh Scraper

Mulailah dengan halaman produk latihan yang kolom datanya mudah diprediksi. Kontennya yang statis berguna untuk mempelajari kontrol sebelum menangani situs web dinamis.

1. Tentukan keluaran

Buat rekaman yang berisi judul produk, harga, ketersediaan, URL sumber, dan waktu pengumpulan. Ekstrak tiga yang pertama dari halaman; tambahkan URL dan stempel waktu UTC saat menyimpan rekaman.

2. Jalankan scraper

Dengan Git dan Docker terpasang, ikuti panduan instalasi Yozh Scraper:

bash
git clone https://github.com/CyberYozh-data/yozh-scraper
cd yozh-scraper
cp .env.example .env
docker compose up --build

3. Buka visual tester

Tester dijalankan secara terpisah dan membutuhkan Node.js. Di terminal lain, masuk ke folder repositori lalu jalankan:

bash
cd scraper-tester
npm install
node server.js

Buka http://localhost:7000 dan pastikan koneksi ke scraper berfungsi normal.

4. Konfigurasikan ekstraksi

Di Scrape Page, masukkan URL latihan, pilih koneksi langsung (none), dan konfigurasikan ekstraksi CSS dengan aturan berikut:

Kolom

Selektor CSS

Judul

.product_main h1

Harga

.product_main .price_color

Ketersediaan

.product_main .availability

Baca teks setiap elemen dan tandai kolom sebagai wajib. Atur wait_for_selector ke .product_main .price_color. Aktifkan keluaran tangkapan layar dan biarkan pemblokiran gambar tetap nonaktif.

5. Jalankan sampel kecil

Jalankan satu halaman dan bandingkan nilai yang diekstrak dengan tangkapan layarnya. Periksa spasi dan pertahankan mata uang sebelum menyimpan rekaman Anda. Nilai-nilai ini hanya untuk demonstrasi, bukan data pasar yang sebenarnya.

6. Simpan preset yang dapat dipakai ulang

Buka Presets, ambil sampel yang sama, pilih Manual, lalu masukkan aturan yang sudah terverifikasi. Gunakan Verify, lalu simpan preset dengan nama yang deskriptif. Pilih preset tersebut di Scrape Page dan uji halaman buku lain sebelum memperluas pengumpulan. Pemilihan kolom dengan bantuan AI juga tersedia jika sudah dikonfigurasi.

Jika target berikutnya memerlukan akses regional, konfigurasikan kunci API CyberYozh dan koneksi proxy yang Anda beli. Proxy residensial rotating mendukung lokasi dan geotargeting; periksa wilayah yang dikembalikan sebelum mengumpulkan dataset yang lebih besar.

Screen scraping dengan Python: ekstrak dan simpan data halaman

Screen scraping dengan Python memberi Anda kontrol atas navigasi halaman, ekstraksi, dan penyimpanan. Contoh ini memakai halaman produk Books to Scrape dan selektor yang sama seperti pada panduan visual, lalu menyimpan rekaman yang sudah tervalidasi sebagai JSON.

Instal Playwright dengan python -m pip install playwright, lalu python -m playwright install chromium. Simpan skrip sebagai scrape_product.py dan jalankan python scrape_product.py.

Untuk koneksi CyberYozh opsional, atur variabel lingkungan berikut di shell yang menjalankan skrip:

  • CYBERYOZH_PROXY_SERVER: endpoint proxy HTTP Anda, dengan format http://HOST:PORT.

  • CYBERYOZH_PROXY_USERNAME: nama pengguna proxy Anda.

  • CYBERYOZH_PROXY_PASSWORD: kata sandi proxy Anda.

Tanpa variabel server, skrip akan terhubung langsung. Playwright mendukung konfigurasi proxy untuk browser atau untuk satu konteks browser.

python
import json
import os
from datetime import datetime, timezone
from playwright.sync_api import sync_playwright, TimeoutError

URL = "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"

FIELDS = {
    "title": ".product_main h1",
    "price": ".product_main .price_color",
    "availability": ".product_main .availability",
}

options = {}
if server := os.getenv("CYBERYOZH_PROXY_SERVER"):
    options["proxy"] = {
        "server": server,
        "username": os.getenv("CYBERYOZH_PROXY_USERNAME", ""),
        "password": os.getenv("CYBERYOZH_PROXY_PASSWORD", ""),
    }

with sync_playwright() as p:
    browser = p.chromium.launch(**options)
    try:
        page = browser.new_page()
        response = page.goto(URL, wait_until="domcontentloaded")

        if response is None or not response.ok:
            raise SystemExit("Page request failed; check the URL and connection.")

        record = {}
        for field, selector in FIELDS.items():
            element = page.locator(selector)
            try:
                element.wait_for(state="visible", timeout=10000)
                value = " ".join(element.inner_text().split())
            except TimeoutError:
                raise SystemExit(f"Required field missing or not ready: {field}")

            if not value:
                raise SystemExit(f"Required field is empty: {field}")

            record[field] = value

        record.update(
            source_url=page.url,
            collected_at=datetime.now(timezone.utc).isoformat(),
        )

        with open("product.json", "w", encoding="utf-8") as output:
            json.dump(record, output, ensure_ascii=False, indent=2)

        print("Saved product.json")
    finally:
        browser.close()

Skrip menunggu setiap elemen wajib, menghapus spasi berlebih, dan mempertahankan mata uang yang ditampilkan. Kolom yang hilang atau kosong akan menghentikan proses dengan pesan yang jelas sebelum rekaman baru ditulis. Keluaran yang berhasil mencakup URL sumber dan waktu pengumpulan UTC; menjalankan ulang akan menimpa product.json.

💡

Tips: Untuk pembahasan lebih lanjut tentang memilih kolom dan mengatur nilai hasil ekstraksi, baca panduan parsing data.

Jika Anda sudah mengonfigurasi Yozh Scraper, Python dapat memakai ulang preset tersimpan melalui REST API-nya:

  1. Kirim ke POST /api/v1/scrape/preset/page dan simpan job_id yang dikembalikan.

  2. Periksa GET /api/v1/scrape/{job_id} sampai selesai, dengan batas waktu keseluruhan dan penanganan untuk job yang gagal atau dibatalkan.

  3. Ambil GET /api/v1/scrape/{job_id}/results, validasi kolom datanya, lalu simpan.

Otomatisasi screen scraping dengan crawler, jadwal, dan tools AI

Setelah ekstraksi halaman produk pertama berjalan, tantangan berikutnya adalah mengumpulkan data terbaru di seluruh katalog. Bangun otomatisasi di atas konfigurasi yang sudah teruji tersebut, dengan batasan penemuan halaman, proses terjadwal, dan pemeriksaan sebelum hasil disimpan.

Temukan halaman tambahan dengan Yozh Crawler

Yozh Crawler menemukan URL dan meneruskan halaman ke Yozh Scraper untuk diekstrak. Mulailah dari halaman kategori, batasi penemuan pada domain atau pola URL yang dituju, dan tetapkan batas maksimum jumlah halaman serta kedalaman.

Penanganan duplikat mencegah URL yang setara dikunjungi berulang kali, sedangkan pengaturan jeda permintaan mengontrol seberapa cepat halaman diambil. Mulailah dengan crawl kecil dan periksa cakupannya sebelum diperluas. Cara ini membantu menemukan halaman yang tidak relevan dan kategori produk yang terlewat sejak dini.

Jadwalkan pengumpulan dengan n8n

Hubungkan n8n ke endpoint Yozh REST API yang dapat dijangkau dan susun alur berikut:

Pemicu terjadwal → kirim job scraping → cek penyelesaian → validasi hasil → simpan data.

Gunakan Schedule Trigger n8n untuk menentukan interval dan node HTTP Request untuk mengirim job. Simpan ID job-nya, lalu gunakan perulangan tunggu-dan-periksa untuk memantau penyelesaian. Tambahkan batas waktu keseluruhan dan cabang kegagalan agar job yang gagal mendapat perhatian.

Sebelum menyimpan, periksa kolom wajib dan lampirkan waktu pengumpulan. Integrasi ini memakai API Yozh dan node standar n8n, dengan penjadwalan yang dikelola di n8n.

💡

Tips: Untuk cara lain menjadwalkan pengumpulan berkala, lihat panduan otomatisasi web scraping.

Hubungkan asisten AI melalui MCP

Model Context Protocol (MCP) memungkinkan asisten AI yang kompatibel memanggil tool eksternal. Setelah menghubungkan asisten ke endpoint MCP Yozh, Anda bisa memintanya mengirim ekstraksi, memeriksa job, dan mengambil hasilnya.

Preset berbantuan AI opsional dapat membuat aturan ekstraksi dari deskripsi atau skema. Jika diaktifkan, perbaikan selektor dipicu saat kolom wajib mengembalikan nilai kosong. Validasi hasil perbaikan terhadap sumbernya, karena kolom yang terisi tetap bisa berisi nilai yang salah.

Konfigurasikan kredensial penyedia AI yang relevan dan perhitungkan biaya penggunaan saat mengaktifkan fitur-fitur ini.

Pilih pengaturan koneksi dan sesi untuk tugas Anda

Saat melakukan screen scraping pada situs web, pilih pengaturan koneksi berdasarkan lokasi yang Anda butuhkan, lama sesi, dan seberapa sering Anda mengunjungi ulang halaman. Opsi proxy CyberYozh cocok untuk berbagai kebutuhan:

  • Residensial rotating: Gunakan IP regional untuk mengumpulkan halaman produk atau listing yang berdiri sendiri. Untuk langkah yang saling berkaitan, pilih sesi sticky hingga 24 jam dan pertahankan konfigurasi sesi yang sama.

🦔

Akses 100 juta IP residensial asli.

  • Static ISP: Pilih IP tetap untuk kunjungan berulang atau tugas terautentikasi yang membutuhkan alamat jaringan yang konsisten.

🦔

Sewa proxy static ISP Anda dan gunakan satu alamat selama seluruh masa sewa. 

  • Mobile LTE/4G/5G: Trafik tanpa batas mendukung pengumpulan data berkelanjutan lewat browser, asalkan pengujian memastikan koneksi operator seluler cocok untuk target. Trafik tanpa batas menggambarkan skema penagihan, bukan kecepatan koneksi.

🦔

Dapatkan proxy seluler Anda dengan IP bersih dan tanpa tambalan. 

  • Datacenter: Pertimbangkan untuk sumber publik yang sesuai, di mana pengujian kecil memastikan akses dan ekstraksi berjalan.

🦔

Dapatkan proxy datacenter dedicated IPv4/IPv6 berkecepatan tinggi dengan uptime 99,99%. 

Cookie browser, sesi login aplikasi, dan persistensi IP proxy memiliki fungsi yang berbeda. Cookie dapat menyimpan pengenal atau token autentikasi, sementara aplikasi yang menentukan apakah login Anda tetap valid. Persistensi proxy menjaga IP yang terlihat dari luar tetap konsisten. Mempertahankan IP tidak memperpanjang login yang sudah kedaluwarsa, dan mempertahankan cookie tidak mencegah perubahan IP.

💡

Sebelum menjalankan job, IP Checker CyberYozh dapat membantu memeriksa reputasi dan sinyal lokasi. API-nya mendukung pengiriman pemeriksaan reputasi IP dan pengambilan laporannya. Gunakan temuan tersebut bersama permintaan uji kecil: setiap target menerapkan aturan aksesnya sendiri, sehingga laporan yang baik tidak menjamin respons target.

Masalah umum screen scraping dan cara mengatasinya

Saat sebuah proses menghasilkan rekaman yang tidak lengkap atau tidak konsisten, bandingkan tangkapan layar yang tersimpan dengan sampel keluaran dari job yang sama. Cara ini membantu membedakan masalah pemuatan halaman dari kesalahan ekstraksi atau pemformatan.

Masalah

Yang perlu diperiksa dan diperbaiki

Kolom hilang

Tunggu konten yang diperlukan, verifikasi selektor terhadap halaman terkini, dan tandai kolom wajib yang kosong sebelum menyimpan.

Harga salah

Pastikan mata uang, lokasi pengiriman, dan varian yang dipilih. Periksa pemisah desimal sebelum mengonversi harga menjadi angka.

Konten halaman tidak terduga

Periksa status login, layar persetujuan, dan pengalihan. Pastikan pengaturan bahasa dan wilayah sesuai dengan tampilan yang dituju.

Rekaman duplikat

Normalisasi URL yang setara dan gunakan pengenal produk yang stabil. Pertahankan perbedaan yang bermakna antara varian, wilayah, dan waktu pengumpulan.

Rate limit berulang

Identifikasi layanan yang mengembalikan 429. Kurangi frekuensi permintaan dan konkurensi, patuhi Retry-After, dan batasi percobaan ulang dengan jeda yang makin panjang.

Perubahan tata letak

Perbarui aturan ekstraksi atau gunakan perbaikan preset yang sudah dikonfigurasi, lalu verifikasi secara manual hasil revisinya terhadap halaman.

Setelah mengubah preset Yozh, jalankan ulang sampel kecil sebelum memulai ulang seluruh pengumpulan. Untuk penanganan percobaan ulang secara mendetail, lihat 429 too many requests.

Apakah screen scraping legal?

Screen scraping bisa legal, tetapi legalitasnya bergantung pada sumber, metode akses, jenis data, yurisdiksi, dan tujuan penggunaan. Dapat melihat sebuah halaman tidak otomatis memberi izin untuk setiap bentuk pengumpulan atau penggunaan ulang.

Sebelum menjalankan job, periksa ketentuan kontraktual situs, pembatasan akses, serta izin atau lisensi yang dibutuhkan aktivitas Anda. Pertimbangkan hak cipta dan hak basis data jika berlaku, terutama jika Anda berencana menerbitkan ulang atau menjual materi yang dikumpulkan.

Kewajiban privasi juga tetap relevan. Regulator privasi internasional menegaskan bahwa informasi pribadi yang dapat diakses publik tetap bisa dilindungi oleh undang-undang perlindungan data.

Untuk contoh ini, batasi Yozh Scraper pada halaman latihan dan kolom produk yang dipilih. Untuk penggunaan produksi, dokumentasikan cakupan yang diizinkan, kumpulkan hanya data yang diperlukan, batasi akses ke rekaman yang tersimpan, dan tetapkan aturan retensi serta penghapusan. Sertakan HTML dan tangkapan layar yang tersimpan dalam kontrol tersebut, karena keduanya dapat memuat informasi tambahan.

Bermanfaat?

Bagikan artikel

FAQ tentang screen scraping