Cara Menggunakan Proxy Residensial Dataimpulse dengan Puppeteer untuk Web Scraping di Linux
Pelajari cara mengintegrasikan proxy residensial Dataimpulse dengan Puppeteer di Linux untuk web scraping skala besar yang andal. Panduan langkah demi langkah ini mencakup instalasi, autentikasi, dan rotasi IP.
Ikhtisar
Puppeteer adalah pustaka Node.js yang menyediakan API tingkat tinggi untuk mengendalikan Chrome atau Chromium tanpa antarmuka (headless). Saat melakukan scraping dalam skala besar, menggunakan proxy residensial seperti Dataimpulse membantu menghindari pemblokiran IP dan batas laju (rate limit). Tutorial ini menunjukkan cara mengonfigurasi Puppeteer untuk merutekan lalu lintas melalui proxy residensial Dataimpulse pada sistem Linux. Kami akan membahas autentikasi proxy HTTP, pengujian, dan rotasi dasar.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Mesin Linux (Ubuntu 20.04+ atau serupa).
- Node.js 14+ dan npm terinstal.
- Akun Dataimpulse dengan kredensial proxy residensial (nama pengguna, kata sandi, endpoint, port). Anda dapat mendaftar untuk paket bayar sesuai pemakaian (pay-as-you-go) di situs web Dataimpulse.
- Keakraban dasar dengan command line dan JavaScript.
Langkah 1: Instal Node.js dan Puppeteer di Linux
Pertama, perbarui daftar paket Anda dan instal Node.js jika belum melakukannya.
sudo apt update
sudo apt install -y nodejs npm
Verifikasi instalasi:
node --version
npm --version
Buat direktori proyek baru dan inisialisasi:
mkdir puppeteer-dataimpulse
cd puppeteer-dataimpulse
npm init -y
Instal Puppeteer:
npm install puppeteer
Catatan: Puppeteer secara default mengunduh biner Chromium yang kompatibel. Di Linux, Anda mungkin perlu menginstal dependensi tambahan. Jika Anda menemukan pustaka yang hilang, instal:
sudo apt install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0
Langkah 2: Dapatkan Kredensial Proxy Dataimpulse
Masuk ke dasbor Dataimpulse Anda dan temukan kredensial proxy residensial Anda. Anda akan memerlukan:
- Host proxy (endpoint yang disediakan oleh Dataimpulse)
- Port (misalnya,
823untuk HTTP,824untuk SOCKS5) - Nama pengguna dan kata sandi untuk autentikasi
Dataimpulse menggunakan satu endpoint dengan IP berotasi secara default. Untuk tutorial ini, kami akan menggunakan endpoint HTTP. Ganti placeholder dalam kode di bawah ini dengan kredensial Anda yang sebenarnya.
Langkah 3: Konfigurasikan Puppeteer untuk Menggunakan Proxy
Buat file baru bernama scrape.js dan tambahkan kode berikut untuk menjalankan Puppeteer dengan proxy Dataimpulse.
const puppeteer = require('puppeteer');
(async () => {
const proxyHost = 'your-proxy-host.dataimpulse.com'; // ganti dengan host Anda
const proxyPort = 823; // ganti dengan port Anda
const proxyUser = 'your_username';
const proxyPass = 'your_password';
const browser = await puppeteer.launch({
headless: true, // atau false untuk debugging
args: [
`--proxy-server=http://${proxyHost}:${proxyPort}`,
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
const page = await browser.newPage();
// Autentikasi dengan proxy
await page.authenticate({
username: proxyUser,
password: proxyPass
});
// Buka halaman uji untuk memverifikasi IP
await page.goto('https://httpbin.org/ip', { waitUntil: 'networkidle2' });
// Ekstrak alamat IP
const ipInfo = await page.evaluate(() => document.body.innerText);
console.log('Alamat IP Anda:', ipInfo);
await browser.close();
})();
Jalankan skrip:
node scrape.js
Jika berhasil, Anda akan melihat alamat IP yang berbeda dari IP lokal Anda, milik kumpulan Dataimpulse.
Langkah 4: Tangani Autentikasi Proxy
Metode page.authenticate() milik Puppeteer berfungsi untuk proxy HTTP. Namun, jika Anda menggunakan proxy SOCKS5, Puppeteer tidak mendukung autentikasi SOCKS5 secara langsung. Dalam kasus tersebut, Anda mungkin perlu menggunakan konverter proxy lokal seperti gost atau proxychains. Untuk tutorial ini, kami fokus pada proxy HTTP.
Jika Anda lebih suka menyematkan kredensial di URL proxy (beberapa pengaturan mengizinkannya), Anda dapat mencoba:
args: [
`--proxy-server=http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}`
]
Tetapi perhatikan bahwa Chrome mungkin tidak menerima kredensial di URL karena alasan keamanan. Pendekatan page.authenticate() lebih andal.
Langkah 5: Uji Koneksi Proxy
Untuk memastikan permintaan Anda melewati proxy dan IP berotasi, Anda dapat menjalankan skrip beberapa kali. Setiap kali dijalankan harus mengembalikan alamat IP yang berbeda.
for i in {1..3}; do node scrape.js; done
Anda akan melihat tiga IP yang berbeda. Ini mengonfirmasi bahwa rotasi berfungsi.
Langkah 6: Terapkan Rotasi IP dan Kontrol Sesi (Opsional)
Dataimpulse memungkinkan Anda mengontrol rotasi menggunakan pengenal sesi di nama pengguna. Sintaks persisnya bervariasi, jadi lihat dasbor atau dokumentasi Dataimpulse Anda untuk format yang benar. Biasanya, Anda dapat menambahkan ID sesi ke nama pengguna untuk mempertahankan IP yang sama selama beberapa permintaan, atau menghilangkannya untuk merotasi pada setiap permintaan.
Di Puppeteer, Anda dapat mengatur nama pengguna secara dinamis per instance browser. Misalnya, jika Anda ingin sesi sticky, Anda dapat menggunakan:
const sessionId = 'abc123'; // ganti dengan ID sesi Anda
const proxyUser = `your_username-session-${sessionId}`;
Ini memungkinkan Anda mempertahankan sesi sticky untuk tugas scraping, yang berguna untuk situs yang melacak sesi.
Pemecahan Masalah
- Kesalahan autentikasi: Pastikan nama pengguna dan kata sandi Anda benar. Jika Anda menggunakan karakter khusus, lakukan URL-encode.
- Timeout koneksi: Periksa pengaturan firewall Anda dan pastikan port proxy tidak diblokir. Coba port lain jika tersedia.
- Puppeteer gagal diluncurkan: Instal dependensi yang hilang. Jalankan
ldd chrome | grep not founduntuk menemukan pustaka yang hilang (jalur ke Chrome dapat bervariasi). - Proxy tidak berotasi: Verifikasi bahwa Anda tidak menggunakan nama pengguna sesi sticky. Setiap permintaan harus mendapatkan IP baru jika tidak ada sesi yang ditentukan.
- Kesalahan SSL: Beberapa situs mungkin menolak proxy. Coba tambahkan
--ignore-certificate-errorske args untuk pengujian (tidak disarankan untuk produksi).
Ringkasan
Dalam tutorial ini, Anda mempelajari cara mengintegrasikan proxy residensial Dataimpulse dengan Puppeteer di Linux. Anda menginstal Puppeteer, mengonfigurasi autentikasi proxy, menguji rotasi IP, dan menjelajahi kontrol sesi. Pengaturan ini memungkinkan web scraping skala besar yang andal dengan mendistribusikan permintaan ke lebih dari 90 juta IP residensial. Ingatlah untuk menghormati persyaratan layanan situs web dan robots.txt. Untuk alat scraping lainnya, kredensial proxy yang sama berfungsi dengan klien HTTP apa pun.