프록시 및 인증 시작#
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();지정된 게이트웨이가 지원되는 각 독립적 인 워크플로우에 대한 별도의 세션 식별자를 사용합니다. 연결 세부 사항의 허용 된 기간 및 위치 매개 변수를 확인하십시오. 요청 된 기간 전에 주거 장치가 차단 될 수 있습니다. 끈적한 세션은 일 동안 동일한 IP를 보장하지 않습니다. 고정 된 주소의 경우 전용 정적 인 제품을 비교하십시오.
브라우저 당 1개의 프록시#
실행 수준 --proxy-server 설정은 브라우저의 기본 여정에 적용됩니다. 현재 Puppeteer는 또한 browser.createBrowserContext()에 프록시 서버를 지원하며, 페이지.authenticate()를 통해 공급된 credentials가 있습니다. 다른 프록시 설정 및 각 사용자 데이터 디렉토리에 대한 별도의 컨텍스트를 사용하여 각 컨텍스트 내에서 종료를 확인합니다.
블록 이미지, 글꼴 및 미디어#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});관련 제품#
- 제품 정보
Accept-Language그리고 출구의 국가에 시간대:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})으로page.emulateTimezone(\"Europe/Berlin\"). - WebRTC 누출을 비활성화
--force-webrtc-ip-handling-policy=disable_non_proxied_udp시작 args에서. - 계정 당 브라우저를 유지하십시오. 계정이 반환 장치처럼 보일 경우 사용자 데이터 디렉토리를 재사용하십시오.
당신이 만나는 오류#
| 학회소개 | 주요 특징 | Fix |
|---|---|---|
| 그물::ERR TUNNEL CONNECTION FAILED | 게이트웨이는 CONNECT: 자격, 매개 변수 또는 출구를 거부 | cURL -v를 사용하여 게이트웨이 코드를 읽으십시오. |
| net::ERR PROXY AUTH UNSUPPORTED / 프롬프트 | 인증() 내비게이션 후 호출 | 전화. goto의 앞에 주의하십시오 |
| 모든 브라우저에서 동일한 IP | 동일한 세션 id 재사용 | 브라우저 당 -sid-를 사용하거나 그것을 omit |
| 아주 느리게 첫번째 짐 | 가구 출구 플러스 무거운 페이지 | 블록 리소스; 45 s로 타임 아웃을 올리십시오. |
자주 묻는 질문#
Puppeteer는 암호로 SOCKS5를 사용할 수 있습니까?
Chrome은 SOCKS5 인증을 지원하지 않습니다. 페이지 9000 포트에 HTTP 프록시를 사용하여 서버 IP 또는 패스 --proxy-server=socks5://res.proxy-cyber.com:9001.