GBProxies

วิธีใช้ Authenticated Proxies กับ Puppeteer

Chrome รับ host และ port ของ proxy เป็น flag ในการเปิดตัว และ Puppeteer จะตอบรับพร้อมท์การเข้าสู่ระบบด้วย page.authenticate

ขั้นตอน

  1. เปิด Chrome ด้วย --proxy-server=host:port
  2. เรียก page.authenticate ด้วย username และ password ของ proxy
  3. เปิดการสกัดกั้นคำขอเพื่อบล็อกรูปภาพและฟอนต์
  4. เปิดเบราว์เซอร์หนึ่งตัวต่อ session id สำหรับ sticky IP

ตัวอย่างโค้ด

import puppeteer from "puppeteer";

const browser = await puppeteer.launch({ args: ["--proxy-server=gw.gbproxies.cc:10000"] });
const page = await browser.newPage();
await page.authenticate({ username: "USERNAME-cc-fr-sid-shop1-ttl-30", password: "PASSWORD" });
await page.setRequestInterception(true);
page.on("request", (r) => (["image", "font", "media"].includes(r.resourceType()) ? r.abort() : r.continue()));
await page.goto("https://api.ipify.org");
console.log(await page.content());
await browser.close();

แทนที่ USERNAME และ PASSWORD ด้วยข้อมูลเข้าสู่ระบบ proxy จากหน้า Proxies ของคอนโซล พอร์ต 10000 คือ residential HTTP; ดูพอร์ตของทุกผลิตภัณฑ์ด้านล่าง

เคล็ดลับ

  • การบล็อกรูปภาพมักลดปริมาณการใช้งานต่อหน้าลงมากกว่าครึ่ง
  • session id แบบ sticky จะคง IP เดียวตลอดการท่องเว็บ

คำถามทั่วไป

ทำไม Chrome ยังแสดงป๊อปอัพเข้าสู่ระบบ?

page.authenticate ต้องทำงานก่อนการนำทางครั้งแรกของหน้านั้น

วิธีใช้ Authenticated Proxies กับ Puppeteer