Skip to content
Intermediate / 5 min read

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.

Linux HTTP(S) Web Scraping

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, 823 untuk HTTP, 824 untuk 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 found untuk 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-errors ke 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.