Pengambilan data karakteristik produk dari marketplace adalah tugas yang sangat penting bagi penjual, analis, dan agregator harga. Wildberries, Ozon, Yandex.Market, dan platform lainnya secara aktif memblokir pengumpulan data otomatis dengan menggunakan sistem anti-bot yang canggih. Tanpa proksi yang diatur dengan benar, parser Anda akan diblokir setelah 50-100 permintaan. Dalam artikel ini, kita akan membahas jenis proksi yang cocok untuk pengambilan data, cara mengatur rotasi IP, dan cara menghindari perlindungan dari marketplace terbesar.
Mengapa marketplace memblokir pengambilan data dan bagaimana cara kerjanya
Marketplace modern kehilangan jutaan rubel karena pengambilan data: pesaing menyalin deskripsi produk, agregator mengambil alih lalu lintas, dan beban pada server meningkat. Oleh karena itu, Wildberries, Ozon, Yandex.Market, dan platform lainnya telah menerapkan perlindungan multi-level terhadap pengumpulan data otomatis.
Bagaimana marketplace mendeteksi pengambilan data:
- Frekuensi permintaan dari satu IP — jika dari satu alamat datang 100+ permintaan per menit, itu adalah tanda jelas bot. Pengguna biasa melihat 5-10 kartu produk dalam waktu tersebut.
- Ketidakadaan JavaScript — parser sederhana menggunakan requests atau curl tidak menjalankan kode JS yang memuat harga dan karakteristik. Situs web melihat bahwa konten diminta tanpa rendering.
- User-Agent dan header — header default dari pustaka (misalnya, "python-requests/2.28.0") segera mengungkapkan bot. Ketidakadaan header Accept-Language, Referer juga mencurigakan.
- Fingerprint browser — sistem canggih (Cloudflare, Kasada, DataDome) menganalisis Canvas, WebGL, font, dan ekstensi browser. Browser headless seperti Puppeteer mudah dikenali karena ketidakadaan beberapa parameter.
- Pola perilaku — bot membuka kartu produk dengan interval yang sama (misalnya, tepat setiap 2 detik), tidak menggulir halaman, tidak menggerakkan mouse. Ini membedakannya dari manusia yang hidup.
Konsekuensi pemblokiran: Pemblokiran sementara IP selama 1-24 jam, CAPTCHA pada setiap permintaan, pemblokiran total rentang IP pusat data. Bagi bisnis, ini berarti penghentian pengumpulan data dan kehilangan keunggulan kompetitif.
Kasus nyata: Agregator harga mengambil data dari Wildberries dengan 10 IP pusat data, melakukan 500 permintaan per jam dari masing-masing. Setelah 3 hari, seluruh rentang /24 mendapatkan pemblokiran permanen — terpaksa mengganti penyedia proksi dan beralih ke IP residensial dengan rotasi.
Perbandingan jenis proksi untuk pengambilan data produk
Untuk pengambilan data karakteristik produk, terdapat tiga jenis proksi utama. Masing-masing memiliki kelebihan dan batasan tergantung pada volume data, anggaran, dan kebutuhan kecepatan.
| Jenis proksi | Kecepatan | Risiko pemblokiran | Biaya | Kapan digunakan |
|---|---|---|---|---|
| Proksi pusat data | Tinggi (50-200 ms) | Tinggi | Rendah | Pengambilan data dalam volume kecil (hingga 10.000 produk/hari), pengujian parser |
| Proksi residensial | Sedang (200-800 ms) | Rendah | Tinggi (berdasarkan lalu lintas) | Pengambilan data dari Wildberries, Ozon dengan perlindungan dari bot, volume data besar |
| Proksi seluler | Sedang (300-1000 ms) | Sangat rendah | Sangat tinggi | Pengambilan data dengan perlindungan maksimal, menghindari pemblokiran ketat, proyek kritis |
Proksi pusat data — adalah alamat IP dari server di pusat data (AWS, Hetzner, OVH). Mereka cepat dan murah, tetapi marketplace mudah mengenali mereka berdasarkan basis data ASN. Cocok untuk pengambilan data katalog kecil (hingga 10.000 produk per hari) atau platform tanpa perlindungan serius. Biaya: dari 1-3$ per IP per bulan.
Proksi residensial — adalah IP pengguna rumah yang diperoleh secara legal melalui SDK dalam aplikasi. Marketplace menganggap mereka sebagai pembeli biasa. Ideal untuk pengambilan data dari Wildberries, Ozon, Yandex.Market dalam volume besar. Biaya: dari 5-15$ per 1 GB lalu lintas (sekitar 10.000-30.000 permintaan).
Proksi seluler — IP dari operator seluler (MTS, Beeline, MegaFon). Jenis yang paling andal untuk menghindari perlindungan, tetapi mahal dan lambat. Gunakan hanya untuk tugas kritis, di mana pemblokiran tidak dapat diterima. Biaya: dari 50-150$ per IP per bulan dengan rotasi.
Proksi residensial atau pusat data: mana yang harus dipilih untuk tugas Anda
Pemilihan jenis proksi tergantung pada tiga faktor: volume pengambilan data, tingkat perlindungan platform, dan anggaran. Mari kita bahas skenario penggunaan yang spesifik.
Kapan proksi pusat data cocok
Skenario 1: Pengujian parser
Anda mengembangkan parser baru dan memeriksa logika ekstraksi data. Anda perlu mengambil 100-500 produk untuk debugging. Dalam hal ini, proksi residensial adalah pemborosan uang. Ambil 5-10 IP pusat data dan lakukan 50-100 permintaan dari masing-masing per jam. Itu sudah cukup untuk pengujian tanpa pemblokiran.
Skenario 2: Pengambilan data dari platform tanpa perlindungan
Marketplace regional kecil, papan iklan seperti Avito (dalam beberapa kategori), toko online di OpenCart sering kali tidak memiliki sistem anti-bot yang serius. Di sini, pusat data bekerja stabil dengan syarat beban yang moderat (hingga 200 permintaan per jam dari IP).
Skenario 3: Anggaran terbatas dan volume kecil
Jika Anda perlu mengambil data 5.000-10.000 produk per hari, dan anggaran terbatas, coba gunakan pusat data dengan rotasi agresif (ganti IP setiap 50-100 permintaan). Ya, akan ada lebih banyak pemblokiran, tetapi dengan pengaturan logika retry yang benar (mengulang permintaan dengan IP baru) ini bisa berhasil.
Kapan proksi residensial diperlukan
Skenario 1: Pengambilan data dari Wildberries dan Ozon
Platform ini menggunakan Cloudflare, DataDome, dan sistem anti-bot mereka sendiri. Dari pusat data, Anda akan mendapatkan CAPTCHA atau pemblokiran setelah 20-50 permintaan. Proksi residensial dengan rotasi setiap 5-10 menit memungkinkan Anda mengambil ratusan ribu produk tanpa masalah. Satu klien mengambil seluruh katalog Wildberries (20+ juta produk) dalam seminggu, menggunakan kumpulan 1000 IP residensial.
Skenario 2: Pengambilan data dengan otorisasi
Beberapa karakteristik produk (harga grosir, sisa stok) hanya tersedia untuk pengguna yang terotorisasi. Jika Anda mengambil data melalui akun, penggunaan pusat data akan mengakibatkan pemblokiran akun. Proksi residensial meniru tindakan pengguna nyata, mengurangi risiko pemblokiran.
Skenario 3: Geotargeting
Harga dan ketersediaan produk di Wildberries, Ozon, Yandex.Market tergantung pada wilayah pengguna. Untuk mengumpulkan data dari Moskow, St. Petersburg, Yekaterinburg secara bersamaan, diperlukan proksi residensial dengan pemilihan kota. Pusat data tidak memungkinkan kontrol geolokasi yang tepat.
Formula pemilihan jenis proksi:
- Volume < 10.000 produk/hari + tidak ada perlindungan ketat = pusat data
- Volume > 10.000 produk/hari + Wildberries/Ozon = residensial
- Pengambilan data dengan otorisasi + risiko pemblokiran akun = residensial
- Butuh geotargeting berdasarkan kota di RF = residensial
- Proyek kritis + nol toleransi terhadap pemblokiran = seluler
Pengaturan rotasi IP: interval dan strategi
Rotasi IP adalah penggantian otomatis server proksi setelah sejumlah permintaan tertentu atau waktu tertentu. Pengaturan rotasi yang benar adalah kunci untuk pengambilan data yang stabil tanpa pemblokiran.
Jenis rotasi proksi
1. Rotasi berdasarkan waktu (Time-based rotation)
IP berubah setelah interval tetap: 5 menit, 10 menit, 30 menit. Ini adalah metode paling sederhana, tetapi tidak paling efektif. Jika Anda melakukan 200 permintaan dalam 5 menit, dan batas platform adalah 100 permintaan dari IP, Anda tetap akan mendapatkan pemblokiran.
Kapan digunakan: Untuk proksi residensial dengan beban rendah (hingga 50 permintaan per IP). Misalnya, pengambilan data dari Wildberries dengan interval 3-5 detik antara permintaan — rotasi setiap 10 menit akan optimal.
2. Rotasi berdasarkan jumlah permintaan (Request-based rotation)
IP berubah setelah N permintaan: 50, 100, 200. Ini lebih tepat daripada rotasi waktu, tetapi memerlukan pelacakan penghitung permintaan dalam kode parser.
Kapan digunakan: Untuk pusat data dan pengambilan data agresif. Misalnya, Anda tahu bahwa Ozon memblokir setelah 80 permintaan dari IP — atur rotasi setiap 70 permintaan sebagai cadangan.
3. Rotasi per permintaan (Per-request rotation)
Setiap permintaan melewati IP baru. Perlindungan maksimal terhadap pemblokiran, tetapi strategi paling mahal untuk proksi residensial (penggunaan lalu lintas meningkat karena pembentukan koneksi baru).
Kapan digunakan: Untuk menghindari perlindungan paling ketat (Cloudflare dalam mode "Under Attack"), pengambilan data dengan risiko tinggi pemblokiran akun, pengumpulan data pesaing yang memantau pengambilan data.
Interval rotasi yang direkomendasikan untuk platform populer
| Platform | Jenis proksi | Interval rotasi | Penundaan antara permintaan |
|---|---|---|---|
| Wildberries | Residensial | Setiap 5-10 menit atau 50 permintaan | 2-4 detik |
| Ozon | Residensial | Setiap 7-12 menit atau 60 permintaan | 3-5 detik |
| Yandex.Market | Residensial | Setiap 10-15 menit atau 80 permintaan | 2-3 detik |
| Avito (kategori produk) | Pusat data | Setiap 15-20 menit atau 100 permintaan | 1-2 detik |
| AliExpress | Residensial | Setiap 3-5 menit atau 30 permintaan | 4-6 detik |
Poin penting: Angka-angka ini adalah hasil pengujian pada tahun 2024. Marketplace terus memperbarui perlindungan, jadi disarankan untuk memulai dengan pengaturan konservatif (lebih sedikit permintaan, lebih banyak penundaan) dan secara bertahap meningkatkan beban, sambil memantau persentase pemblokiran.
Strategi rotasi "cerdas"
Alih-alih interval tetap, gunakan rotasi adaptif berdasarkan respons server:
- HTTP 429 (Terlalu Banyak Permintaan) — segera ganti IP dan tambahkan IP ini ke daftar hitam selama 30-60 menit.
- HTTP 403 (Dilarang) atau CAPTCHA — ganti IP dan tingkatkan penundaan antara permintaan sebesar 50%.
- HTTP 503 (Layanan Tidak Tersedia) — mungkin masalahnya bukan pada proksi, tetapi pada kelebihan beban situs. Jeda 30-60 detik tanpa mengganti IP.
- Permintaan berhasil berturut-turut > 100 — Anda dapat sedikit mengurangi penundaan atau meningkatkan jumlah permintaan sebelum rotasi.
Logika ini diimplementasikan dalam kode parser dan dapat menghemat hingga 30-40% lalu lintas proksi, menghindari rotasi yang tidak perlu.
Menghindari sistem anti-bot Wildberries, Ozon, dan Yandex.Market
Marketplace modern menggunakan perlindungan multi-level: dari pemeriksaan User-Agent sederhana hingga fingerprinting browser yang canggih. Hanya menggunakan proksi tidak cukup — diperlukan strategi penghindaran yang komprehensif.
Tingkat 1: Header HTTP yang benar
Set minimum header yang harus dikirim oleh parser Anda:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Cache-Control: max-age=0
Poin kritis:
- User-Agent harus sesuai dengan browser nyata. Gunakan versi terbaru Chrome 120+, Firefox 121+. Jangan gunakan versi lama (Chrome 90) — ini adalah bendera merah.
- Accept-Language harus "ru-RU" untuk platform Rusia. Jika Anda mengambil data dengan header "en-US", situs akan memahami ketidaksesuaian (IP dari Rusia, tetapi bahasa Inggris).
- Header Sec-Fetch-* muncul di Chrome 76+ dan wajib untuk situs modern. Ketidakadaan mereka mengungkapkan parser lama.
Tingkat 2: Eksekusi JavaScript
Wildberries dan Ozon memuat harga, karakteristik, dan sisa stok melalui JavaScript setelah halaman dimuat. Jika parser Anda menggunakan requests/curl hanya untuk mengunduh HTML, ia akan mendapatkan halaman kosong atau placeholder.
Solusi: Gunakan browser headless — Puppeteer (Node.js), Playwright (Python/Node.js), Selenium. Mereka sepenuhnya merender halaman, menjalankan JS, dan mendapatkan HTML akhir.
Masalah browser headless: Situs web mudah mengenali mereka berdasarkan parameter navigator.webdriver === true, ketidakadaan plugin, ukuran Canvas yang spesifik. Persentase deteksi Chrome headless adalah sekitar 80-90%.
Solusi untuk masalah: Gunakan pustaka untuk mode stealth:
- puppeteer-extra-plugin-stealth (Node.js) — menyamarkan Puppeteer sebagai Chrome biasa, mem-patch 30+ parameter fingerprint.
- undetected-chromedriver (Python) — versi Selenium ChromeDriver yang telah dipatch, yang tidak terdeteksi oleh sebagian besar sistem anti-bot.
- playwright-stealth (Python) — analog untuk Playwright dengan dukungan Firefox dan WebKit.
Tingkat 3: Menghindari Cloudflare dan DataDome
Wildberries menggunakan Cloudflare Bot Management, Ozon — DataDome. Sistem ini menganalisis tidak hanya IP dan header, tetapi juga perilaku: kecepatan menggulir, gerakan mouse, waktu muat halaman.
Tanda tantangan Cloudflare: Alih-alih konten, Anda melihat halaman "Memeriksa browser Anda..." dengan penundaan 5 detik. Dalam kode, ini adalah tantangan JavaScript yang memeriksa browser.
Bagaimana cara menghindarinya:
- FlareSolverr — layanan proksi yang secara otomatis menyelesaikan tantangan Cloudflare. Anda mengirimkan URL kepadanya, ia mengembalikan cookie untuk penghindaran. Bekerja dalam 70-80% kasus.
- Playwright dengan penantian — memuat halaman di browser headless, menunggu 10-15 detik (sampai JS dieksekusi), mengekstrak cookie dan menggunakannya dalam permintaan HTTP biasa. Menghemat sumber daya: browser hanya diperlukan untuk mendapatkan cookie, setelah itu Anda dapat mengambil data melalui requests.
- Proksi residensial + browser stealth — kombinasi ini memberikan 95%+ keberhasilan penghindaran. Cloudflare melihat IP nyata pengguna dan fingerprint browser yang benar.
Penting: Cloudflare terus memperbarui perlindungan. Apa yang berhasil pada bulan Desember 2024 mungkin tidak berhasil pada bulan Maret 2025. Selalu siapkan rencana cadangan: solusi manual CAPTCHA melalui layanan 2Captcha/AntiCaptcha atau beralih ke API marketplace (jika tersedia).
Tingkat 4: Meniru perilaku pengguna
Sistem anti-bot yang canggih melacak pola perilaku. Pengguna nyata menggulir halaman, menggerakkan mouse, terkadang kembali. Bot membuka kartu produk dengan interval yang sempurna 2.000 detik.
Bagaimana cara meniru:
- Randomisasi penundaan — alih-alih 3 detik tetap, gunakan random.uniform(2.5, 5.0). Tambahkan jeda panjang yang jarang (15-30 detik), meniru gangguan pengguna.
- Menggulir halaman — di Puppeteer/Playwright, tambahkan pengguliran sebelum mengekstrak data:
await page.evaluate(() => window.scrollBy(0, 500)). - Gerakan mouse — pustaka ghost-cursor untuk Puppeteer menghasilkan jalur gerakan kursor yang realistis.
- Pindah melalui pencarian — jangan buka kartu produk langsung melalui URL. Pertama, kunjungi halaman utama, lakukan pencarian, klik produk dalam hasil. Ini terlihat alami.
Alat populer untuk pengambilan data dengan dukungan proksi
Untuk pengambilan data karakteristik produk, tidak perlu menulis kode dari awal. Terdapat alat siap pakai dengan antarmuka visual, dukungan proksi, dan penghindaran perlindungan otomatis.
Octoparse — parser tanpa kode
Deskripsi: Aplikasi desktop untuk Windows/Mac dengan pembangun parser visual. Anda mengklik elemen halaman (nama produk, harga, karakteristik), program secara otomatis membuat aturan ekstraksi.
Dukungan proksi: Terintegrasi. Dalam pengaturan, Anda menyebutkan daftar proksi, program secara otomatis merotasinya. Mendukung HTTP, HTTPS, SOCKS5. Ada integrasi dengan penyedia Bright Data, Smartproxy.
Kelebihan: Tidak memerlukan kode, bekerja dengan situs JavaScript, perencana tugas terintegrasi, ekspor ke Excel/CSV/JSON.
Kekurangan: Langganan berbayar mulai dari 75$/bulan, lebih lambat daripada kode Python, batasan pada jumlah halaman di versi gratis.
Kapan digunakan: Untuk proyek kecil (hingga 50.000 produk), jika Anda bukan programmer atau memerlukan prototipe cepat.
ParseHub — parser berbasis cloud
Deskripsi: Mirip dengan Octoparse, tetapi berfungsi di cloud. Anda mengatur parser di aplikasi desktop, dan dijalankan di server ParseHub. Nyaman untuk tugas jangka panjang (pengambilan data 100.000+ produk).
Dukungan proksi: Hanya di tarif berbayar (dari 149$/bulan). Anda dapat mengunggah daftar proksi Anda sendiri atau menggunakan IP residensial terintegrasi dari ParseHub.
Kelebihan: Tidak membebani komputer Anda, pemrosesan paginasi otomatis, API untuk integrasi.
Kekurangan: Mahal, dukungan lambat, kesulitan dalam pengaturan untuk situs yang kompleks.
Scrapy (Python) — untuk programmer
Deskripsi: Kerangka kerja untuk membuat parser di Python. Pilihan paling fleksibel dan cepat — dapat mengambil jutaan produk per hari. Memerlukan pengetahuan Python pada tingkat menengah.
Dukungan proksi: Melalui middleware. Solusi populer: scrapy-rotating-proxies (rotasi dari daftar), scrapy-proxy-pool (integrasi dengan API penyedia). Pengaturan memakan waktu 10-15 menit.
Kelebihan: Gratis, sangat cepat (permintaan asinkron), kontrol penuh atas logika, komunitas besar.
Kekurangan: Perlu menulis kode, kesulitan dengan situs JavaScript (memerlukan integrasi dengan Splash atau Playwright).
Kapan digunakan: Untuk proyek serius dengan volume 100.000+ produk per hari, jika Anda memiliki programmer di tim.
Apify — marketplace parser siap pakai
Deskripsi: Platform dengan ribuan parser siap pakai (disebut "aktor") untuk situs populer. Ada solusi siap pakai untuk Amazon, eBay, AliExpress. Untuk marketplace Rusia, pilihan lebih sedikit, tetapi Anda dapat memesan pengembangan.
Dukungan proksi: Terintegrasi di semua aktor. Apify menyediakan proksi residensialnya sendiri (pembayaran berdasarkan lalu lintas) atau Anda dapat menghubungkan proksi Anda sendiri.
Kelebihan: Solusi siap pakai, eksekusi cloud, API untuk otomatisasi, proksi terintegrasi.
Kekurangan: Mahal (dari 49$/bulan + biaya proksi), ketergantungan pada platform, batasan pada kustomisasi.
Perbandingan alat
| Alat | Perlu kode? | Harga | Kecepatan | Untuk siapa |
|---|---|---|---|---|
| Octoparse | Tidak | Dari 75$/bulan | Sedang | Pemasar, analis tanpa pemrograman |
| ParseHub | Tidak | Dari 149$/bulan | Sedang | Sama, bagi yang ingin eksekusi cloud |
| Scrapy | Ya (Python) | Gratis | Sangat tinggi | Programmer, volume data besar |
| Apify | Tidak (aktor siap pakai) | Dari 49$/bulan + lalu lintas | Tinggi | Bisnis, memerlukan solusi siap pakai |
| Puppeteer/Playwright | Ya (JS/Python) | Gratis | Sedang (browser berat) | Programmer, situs JS yang kompleks |
Pengaturan langkah demi langkah proksi di parser
Mari kita lihat pengaturan praktis proksi menggunakan alat populer. Instruksi ini cocok untuk pengambilan data dari marketplace mana pun, tidak hanya dari Rusia.
Pengaturan di Octoparse
Langkah 1: Buka Octoparse dan buat tugas pengambilan data baru. Masukkan URL halaman awal (misalnya, kategori produk di Wildberries).
Langkah 2: Pergi ke menu "Settings" → "Advanced Settings" → "Proxy". Pilih "Use custom proxy".
Langkah 3: Tambahkan proksi dalam format:
http://username:password@proxy-server.com:8080
socks5://username:password@proxy-server.com:1080
Langkah 4: Aktifkan opsi "Rotate proxy" dan atur interval rotasi. Untuk Wildberries, disarankan "Rotate on every 50 requests" atau "Rotate every 10 minutes".
Langkah 5: Klik "Test Proxy" — Octoparse akan memeriksa ketersediaan setiap proksi. Hapus yang tidak berfungsi dari daftar.
Langkah 6: Di bagian "Speed", atur penundaan antara permintaan: 2-4 detik untuk proksi residensial, 3-5 detik untuk pusat data.
Pengaturan di Scrapy (Python)
Langkah 1: Instal pustaka untuk rotasi proksi:
pip install scrapy-rotating-proxies
Langkah 2: Buat file proxies.txt dengan daftar proksi (satu per baris):
http://user:pass@1.2.3.4:8080
http://user:pass@5.6.7.8:8080
socks5://user:pass@9.10.11.12:1080
Langkah 3: Di file settings.py proyek Scrapy Anda, tambahkan:
ROTATING_PROXY_LIST_PATH = 'proxies.txt'
DOWNLOADER_MIDDLEWARES = {
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}
# Penundaan antara permintaan (dalam detik)
DOWNLOAD_DELAY = 3
# Randomisasi penundaan (±50%)
RANDOMIZE_DOWNLOAD_DELAY = True
# Permintaan paralel (tidak lebih dari 16 untuk proksi residensial)
CONCURRENT_REQUESTS = 8
Langkah 4: Scrapy secara otomatis akan merotasi proksi pada setiap permintaan. Jika proksi mengembalikan kesalahan (HTTP 403, 429, timeout), ia ditandai sebagai "buruk" dan sementara dikecualikan dari rotasi.
Pengaturan di Puppeteer (Node.js)
Langkah 1: Instal Puppeteer dan plugin untuk mode stealth:
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Langkah 2: Buat skrip dengan dukungan proksi:
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const proxyList = [
'http://user:pass@proxy1.com:8080',
'http://user:pass@proxy2.com:8080'
];
let currentProxyIndex = 0;
async function scrapeWithProxy(url) {
const proxy = proxyList[currentProxyIndex];
currentProxyIndex = (currentProxyIndex + 1) % proxyList.length;
const browser = await puppeteer.launch({
headless: true,
args: [`--proxy-server=${proxy}`]
});
const page = await browser.newPage();
// Otorisasi proksi (jika diperlukan)
await page.authenticate({
username: 'user',
password: 'pass'
});
await page.goto(url, { waitUntil: 'networkidle2' });
// Ekstraksi data
const data = await page.evaluate(() => {
return {
title: document.querySelector('.product-title')?.innerText,
price: document.querySelector('.product-price')?.innerText,
// Tambahkan ekstraksi lainnya sesuai kebutuhan
};
});
await browser.close();
return data;
}
// Contoh penggunaan
scrapeWithProxy('https://example.com/product-page').then(data => {
console.log(data);
});
Catatan: Pastikan untuk menyesuaikan selector untuk ekstraksi data sesuai dengan struktur halaman yang Anda ambil.