# การพิสูจน์ตัวตนพร็อกซี Puppeteer ด้วย IP พร็อกซีเรซิเดนเชียลและพร็อกซีมือถือ 4G

> การพิสูจน์ตัวตนพร็อกซี Puppeteer: ใช้ --proxy-server พร้อม page.authenticate(), เซสชันละหนึ่งเบราว์เซอร์คอนเท็กซ์, ดักจับคำขอเพื่อประหยัดทราฟฟิก

- URL: https://crawlrelay.com/th/docs/puppeteer/
- อัปเดตล่าสุด: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Chrome รับที่อยู่พร็อกซีจากธงเปิดตัว และข้อมูลรับรองจาก page.authenticate() ใช้เบราว์เซอร์คอนเท็กซ์หนึ่งตัวต่อเซสชันเพื่อป้องกันไม่ให้ข้อมูลรับรองรั่วไหลระหว่างงาน

**คำตอบด่วน — ฉันจะใช้พร็อกซีที่พิสูจน์ตัวตนได้ใน Puppeteer อย่างไร?**

เปิด Chrome ด้วย `--proxy-server=http://gw.crawlrelay.com:7777` จากนั้นเรียก `page.authenticate({ username, password })` ก่อนคำขอแรก `goto` Chrome จะไม่สนใจข้อมูลรับรองที่เขียนในธง **CrawlRelay** พร็อกซีเรซิเดนเชียลอ่านประเทศและเซสชันสติกกี้จากชื่อผู้ใช้ ดังนั้นแต่ละหน้า หรือคอนเท็กซ์สามารถมีทางออกของตัวเองได้ ทราฟฟิกคิดค่าบริการเป็น US$0.50/GB เริ่มต้นที่ 50 GB จ่ายด้วยคริปโต โดยไม่ต้อง KYC

## การตั้งค่า Puppeteer แบบสั้นๆ

| คุณลักษณะ | ค่า |
| --- | --- |
| ที่อยู่พร็อกซี | `--proxy-server=http://gw.crawlrelay.com:7777` ใน `args` หรือ `proxyServer` บนเบราว์เซอร์คอนเท็กซ์ |
| ข้อมูลรับรอง | `await page.authenticate({ username, password })` ก่อนที่จะไปยังหน้าเว็บ |
| เซสชันแยกกัน | `browser.createBrowserContext({ proxyServer })`: คอนเท็กซ์ละหนึ่งเซสชัน |
| SOCKS5 | ไม่รองรับการพิสูจน์ตัวตนใน Chrome: ใช้พอร์ต HTTP |
| ประหยัดทราฟฟิก | `page.setRequestInterception(true)` และยกเลิกโหลดรูปภาพ ตัวอักษร และสื่อ |

## ฉันจะตั้งค่าพร็อกซีที่พิสูจน์ตัวตนเดียวได้อย่างไร?

นี่คือรูปแบบพื้นฐาน บล็อก `try … finally` จะปิด Chrome แม้การนำทางล้มเหลว ซึ่งสำคัญในเซิร์ฟเวอร์ที่เบราว์เซอร์ที่ถูกทอดทิ้งสะสม

*Node.js (โมดูล ES): เบราว์เซอร์หนึ่งตัว ทางออกหนึ่งตัว*

```javascript
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=http://gw.crawlrelay.com:7777"],
});
try {
  const page = await browser.newPage();
  await page.authenticate({ username: "USERNAME-country-us", password: "PASSWORD" });
  await page.setRequestInterception(true);
  page.on("request", (req) =>
    ["image", "font", "media"].includes(req.resourceType()) ? req.abort() : req.continue()
  );
  const res = await page.goto("https://example.com/", { waitUntil: "domcontentloaded", timeout: 60000 });
  console.log(res.status(), await page.title());
} finally {
  await browser.close();
}
```

## ฉันจะรันหลายเซสชันหรือหลายประเทศในเบราว์เซอร์เดียวได้อย่างไร?

สร้างคอนเท็กซ์เบราว์เซอร์หนึ่งตัวต่อหนึ่งเซสชัน คอนเท็กซ์คือโปรไฟล์แยกที่มีคุกกี้ แคช และสถานะเครือข่ายของตัวเอง ดังนั้นข้อมูลรับรองที่คุณให้กับคอนเท็กซ์หนึ่งจะไม่รั่วไหลไปยังอีกคอนเท็กซ์ ให้แต่ละคอนเท็กซ์ใช้ชื่อผู้ใช้ที่มีประเทศหรือรหัสเซสชันของตัวเอง

*Node.js: คอนเท็กซ์หนึ่งตัวต่อเซสชันสติกกี้หนึ่งตัว*

```javascript
import puppeteer from "puppeteer";
import { randomUUID } from "node:crypto";

const GATEWAY = "http://gw.crawlrelay.com:7777";
const browser = await puppeteer.launch();

async function visit(country, url) {
  const session = randomUUID().replaceAll("-", "").slice(0, 10);
  const context = await browser.createBrowserContext({ proxyServer: GATEWAY });
  try {
    const page = await context.newPage();
    await page.authenticate({
      username: `USERNAME-country-${country}-session-${session}-ttl-20`,
      password: "PASSWORD",
    });
    await page.goto(url, { waitUntil: "domcontentloaded", timeout: 60000 });
    return { country, session, ip: await page.evaluate(() => document.body.innerText.trim()) };
  } finally {
    await context.close();
  }
}

try {
  const results = await Promise.all([
    visit("us", "https://api.ipify.org"),
    visit("gb", "https://api.ipify.org"),
  ]);
  console.table(results);
} finally {
  await browser.close();
}
```

## ทำไม Puppeteer ถึงแสดง 407 หรือ ERR_TUNNEL_CONNECTION_FAILED?

เพราะ Chrome ไม่ได้ส่งข้อมูลรับรอง หรือส่งข้อมูลรับรองผิด ตรวจสอบสามข้อ:

1. `page.authenticate()` ต้องรัน **ก่อน** คำขอ `goto` ครั้งแรกบนหน้านั้น
2. ธง `--proxy-server` หรือ `proxyServer` ต้องมีแค่สกีม โฮสต์ และพอร์ต ไม่มีส่วน `user:pass@`
3. ชื่อผู้ใช้ไม่มีพิมพ์ผิดในส่วนที่กำหนดเป้าหมาย: ทดสอบด้วย curl ก่อนตามที่แสดงในหน้า [407](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/)]

ถ้า curl ผ่านด้วยชื่อผู้ใช้และรหัสผ่านเดียวกันแต่ Puppeteer ยังล้มเหลว อ่าน [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-tunnel-connection-failed/)]

## ทราฟฟิกที่เพจ Puppeteer ใช้มีปริมาณเท่าไหร่?

ทุกอย่างที่ Chrome ดาวน์โหลดมีค่าใช้จ่าย: ทั้ง HTML, สคริปต์, สไตล์, รูปภาพ, ฟอนต์ และ API ที่เพจเรียกใช้ HTTP Archive Web Almanac 2025 วัดน้ำหนักกลางของเพจที่ 2,164 KB บนมือถือ และ 2,412 KB บนเดสก์ท็อป การบล็อกรูปภาพ ฟอนต์ และสื่อด้วยการดักจับคำขอมักลดขนาดลงเหลือไม่กี่ร้อยกิโลไบต์ และการตอบกลับจากแคชสำหรับสคริปต์ที่เรียกซ้ำช่วยลดได้อีก ใช้ [พร็อกซีมือถือ 4G แบบหมุนเวียน](https://crawlrelay.com/th/mobile-proxies/) เฉพาะกับเพจที่ต้องการเท่านั้น: ทราฟฟิกมือถือเริ่มต้นที่ US$1.50/GB 5 GB, พร็อกซีเรซิเดนเชียลเริ่มต้นที่ US$0.50/GB 50 GB

## คำถามเกี่ยวกับ Puppeteer และพร็อกซี

### ฉันใส่ชื่อผู้ใช้และรหัสผ่านใน --proxy-server ได้ไหม?

ไม่ได้ Chrome จะเพิกเฉยกับข้อมูลรับรองในธง `--proxy-server` และคำขอ HTTPS แรกจะล้มเหลวด้วย 407 ที่ซ่อนอยู่หลัง `ERR_TUNNEL_CONNECTION_FAILED` ใส่เฉพาะ `http://host:port` ในธง แล้วส่งข้อมูลรับรองด้วย `page.authenticate()` ในแต่ละหน้าใหม่

### ฉันจะหมุน IP ระหว่างหน้าใน Puppeteer ได้อย่างไร?

เปิดแต่ละหน้าในเบราว์เซอร์คอนเท็กซ์ใหม่ หรือให้แต่ละหน้ามีชื่อผู้ใช้โดยไม่มีรหัสเซสชัน คอนเท็กซ์ใหม่จะสร้างการเชื่อมต่อใหม่ และการเชื่อมต่อแต่ละครั้งมักได้ทางออกพร็อกซีเรซิเดนเชียลแตกต่างกัน ภายในหน้าเดียว Chrome จะใช้ซ้ำการเชื่อมต่อ ดังนั้นคำขอไปยังไซต์เดียวกันมักแชร์ทางออกจนกว่าการเชื่อมต่อจะปิด

### page.authenticate() ใช้กับการดักจับคำขอได้ไหม?

ได้ Puppeteer จัดการความท้าทายการพิสูจน์ตัวตนพร็อกซีเอง และตัวจัดการดักจับของคุณต้องเรียก `continue()` หรือ `abort()` ในแต่ละคำขอ ตั้งค่า `authenticate()` ก่อน แล้วเปิดใช้งานการดักจับคำขอตามตัวอย่างแรก

### ฉันควรใช้ปลั๊กอิน stealth puppeteer-extra กับพร็อกซีไหม?

เราไม่บันทึกหรือสนับสนุนเครื่องมือที่มุ่งปกปิดการทำงานอัตโนมัติหรือหลีกเลี่ยงการตรวจจับบอท จุดประสงค์ของเครื่องมือเหล่านี้คือลัดผ่านการกรองผู้เยี่ยมชมอัตโนมัติ ซึ่งนโยบายการใช้งานที่ยอมรับได้ของเรา [Acceptable Use Policy](https://crawlrelay.com/th/acceptable-use/)] ไม่อนุญาต ให้เรนเดอร์หน้าสาธารณะด้วยจังหวะที่สุภาพและใช้ API อย่างเป็นทางการเมื่อไซต์มีให้

### Chrome เวอร์ชันไหนที่ Puppeteer ใช้กับพร็อกซี?

เวอร์ชัน Puppeteer ล่าสุดจะดาวน์โหลด Chrome สำหรับ Testing ที่ตรงกันและใช้เป็นค่าเริ่มต้น ธงพร็อกซีและ `page.authenticate()` ทำงานเหมือนใน Chrome ปกติ หากคุณชี้ Puppeteer ไปที่ Chrome ของคุณเองด้วย `executablePath` ให้เก็บเบราว์เซอร์นั้นให้อัปเดต

**รัน Puppeteer ผ่าน IP พร็อกซีเรซิเดนเชียล** US$5.94 สำหรับ 10 GB, US$0.50/GB จาก 50 GB. [ดูราคา](https://crawlrelay.com/th/pricing/) · [คู่มือ Node.js](https://crawlrelay.com/th/docs/node/)

---

CrawlRelay: CrawlRelay คือพร็อกซีเรซิเดนเชียลหมุนเวียนพร้อมพร็อกซีมือถือ 4G/5G สำหรับนักพัฒนา เหมาะกับสแครปเปอร์และระบบจัดการข้อมูล AI: เติมเงินจ่ายตามการใช้งานจาก US$0.50/GB จ่ายด้วยคริปโต ไม่ต้องอัปโหลดบัตรประชาชน ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
