Puppeteer에서 인증 프록시 사용 방법
Chrome은 프록시 호스트와 포트를 실행 플래그로 받아들이고, Puppeteer는 로그인 프롬프트에 page.authenticate로 응답해요.
단계
- --proxy-server=host:port로 Chrome 실행
- 프록시 사용자 이름과 비밀번호로 page.authenticate 호출
- 이미지와 폰트를 차단하려면 요청 가로채기를 켜세요
- 고정 IP를 위해 세션 ID당 하나의 브라우저를 열세요
예제 코드
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();프록시 콘솔의 Proxies 페이지에서 프록시 로그인 정보로 USERNAME과 PASSWORD를 입력하세요. 포트 10000은 residential HTTP용이에요. 각 제품의 포트는 아래에서 확인할 수 있어요.
팁
- 이미지를 차단하면 페이지당 트래픽을 절반 이상 줄일 수 있어요
- 고정 세션 ID로 전체 브라우징 흐름 동안 같은 IP를 유지할 수 있어요
자주 묻는 질문
왜 Chrome에 로그인 팝업이 계속 표시되나요?
페이지의 첫 번째 탐색 전에 page.authenticate를 실행해야 해요.