Luncurkan dengan proksi dan otentikasi#
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
headless: true,
args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });
await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Gunakan identifikasi sesi yang berbeda untuk setiap aliran kerja independen, dimana gerbang yang diberikan mendukungnya. Konfirmasi durasi dan parameter lokasi yang diizinkan dalam rincian koneksi Anda. Perangkat perumahan dapat terputus sebelum durasi yang diminta; sesi lengket bukan jaminan IP yang sama selama berhari-hari. Untuk alamat tetap, bandingkan produk statis yang berdedikasi.
Satu proxy per browser#
Tingkat launch-level --proxy-server berlaku untuk routing baku browser. Puppeteer kini juga mendukung proxyServer dalam browser.createBrowsertext (), dengan kredensial yang diberikan melalui page.authenticate (). Gunakan konteks terpisah untuk konfigurasi proksi berbeda dan direktori data terpisah untuk persisten profil; verifikasi keluar di dalam setiap konteks.
Gambar blok, fonta, dan media#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Konsistensi#
- Set
Accept-Languagedan zona waktu ke negara keluar:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})danpage.emulateTimezone(\"Europe/Berlin\"). - Nonaktifkan kebocoran WebRTC dengan
--force-webrtc-ip-handling-policy=disable_non_proxied_udpdi args peluncuran. - Simpan satu peramban per akun; gunakanlah kembali direktori data pengguna bila akun mesti terlihat seperti perangkat kembali.
Galat yang akan Anda temui#
| Symptom | Penyebab | Perbaiki |
|---|---|---|
| net:: ERR _ TUNAL _ CONNECTION _ GALAT | Gateway menolak CONNECT: kredensial, parameter atau tidak ada keluar | Buat ulang dengan cURL -v untuk membaca kode gateway |
| net:: ERR _ PROXY _ AUTH _ UNSUPPORTED / prompt | otentikasi () dipanggil setelah navigasi | Panggil page .authenticate sebelum goto |
| IP yang sama di setiap peramban | ID sesi yang sama digunakan kembali | Gunakan berbeda -sid- per browser atau abaikan |
| Muatan pertama sangat lambat | Keluar rumah tangga ditambah halaman berat | Sumber daya blok; menaikkan waktu habis hingga 45 s |
Pertanyaan yang orang tanyakan#
Bisakah Puppeteer menggunakan SOCKS5 dengan kata sandi?
Chrome tidak mendukung otentikasi SOCKS5. Gunakan proksi HTTP pada port 9000 dengan page.authenticate, atau whitelist server Anda IP dan lulus --proxy-server = socks5: / / res.proxy-cyber.com: 9001.