วิธีตั้งค่าพร็อกซีใน Playwright (การยืนยันตัวตนระดับเบราว์เซอร์และราย Context)
อัปเดตเมื่อ:
Playwright รองรับการยืนยันตัวตน HTTP proxy ในตัว (server, username, password) ทั้งบน Chromium, Firefox และ WebKit โดยไม่ต้องติดตั้งส่วนขยายหรือไลบรารีเสริม ยิ่งไปกว่านั้น ฟีเจอร์ Per-Context Proxy ของ Playwright ยังช่วยให้เบราว์เซอร์หนึ่งตัวสามารถเปิดเซสชัน BrowserContext ที่แยกขาดจากกันได้หลายสิบเซสชัน โดยแต่ละเซสชันเชื่อมต่อกับ IP แบบคงที่ของ VinaProxy ของตัวเอง
proxy={ server: 'http://ip:port', username: 'user', password: 'pass' }- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
- 1 IP₫50,000
- 3+ IP₫40,000
- 5+ IP₫40,000
- 10+ IP₫32,000
- 50+ IP₫30,000
- 100+ IP₫30,000
- 200+ IP₫30,000
- 500+ IP₫25,000
การกำหนดค่าออบเจกต์ proxy ใน Playwright
ส่งออบเจกต์ proxy ได้ทั้งระดับโกลบอลใน chromium.launch({ proxy }) หรือระดับเซสชันใน browser.newContext({ proxy }):
| คีย์ของ Playwright | รูปแบบค่า | หมายเหตุทางเทคนิค |
|---|---|---|
server | 'http://ip:port' | ระบุเฉพาะโฮสต์และพอร์ต โดยต้องมี http:// นำหน้า |
username | 'user' | ชื่อผู้ใช้พร็อกซีจากแดชบอร์ด VinaProxy |
password | 'pass' | รหัสผ่านพร็อกซี (Playwright จัดการการตอบสนอง HTTP 407 อัตโนมัติ) |
bypass | 'localhost,127.0.0.1' | รายชื่อโฮสต์ที่ไม่ต้องผ่านพร็อกซี คั่นด้วยเครื่องหมายจุลภาค (ระบุหรือไม่ก็ได้) |
แนวทางปฏิบัติเพื่อรัน BrowserContext หลาย IP อย่างมีประสิทธิภาพ
- บน Windows และ macOS หากต้องการกำหนด proxy แยกในแต่ละ
browser.newContext()จำเป็นต้องระบุตัวแทนproxy: { server: 'http://per-context' }ในคำสั่งchromium.launch()เพื่อเปิดใช้งานระบบเราต์พร็อกซีของ Chromium - ตั้งค่า
timezoneIdและlocaleในbrowser.newContext()ให้สอดคล้องกับตำแหน่งประเทศของพร็อกซี เพื่อให้เฮดเดอร์และ APIIntlของ JavaScript ตรงกับเป้าหมาย - ยกเลิกคำขอรูปภาพและฟอนต์ที่ไม่จำเป็นด้วย
page.route()เพื่อเพิ่มความเร็วในการดึงข้อมูล (scraping)
ขั้นตอนทีละขั้น
- 1
คัดลอก IP, Port, Username และ Password
คัดลอกข้อมูลการเข้าสู่ระบบ
ip:port:user:passจากแดชบอร์ด VinaProxy - 2
ส่งออบเจกต์ proxy ไปยัง newContext()
เรียกใช้คำสั่ง
const context = await browser.newContext({ proxy: { server: 'http://ip:port', username: 'user', password: 'pass' } }) - 3
ปรับ timezoneId และ locale ให้ตรงกับพื้นที่
กำหนด
timezoneIdและlocaleให้ตรงกับประเทศของพร็อกซี (เช่นAmerica/New_YorkหรือAsia/Ho_Chi_Minh) - 4
ตรวจสอบ IP ขาออกบนหน้าเว็บใหม่
เปิดหน้าต่างใหม่ด้วย
const page = await context.newPage()แล้วส่งคำขอไปที่https://vinaproxy.com/api/my-ip
คำถามที่พบบ่อย
ทำไม Playwright ถึงแจ้งข้อผิดพลาด 'Proxy is only supported when browser is launched with a proxy'?
บน Windows และ macOS เบราว์เซอร์ Chromium ต้องการการเปิดใช้แฟล็กพร็อกซีส่วนกลางขณะเริ่มต้น ก่อนที่จะอนุญาตให้แก้ไขพร็อกซีแยกตามคอนเทกต์ ให้เปิดเบราว์เซอร์ด้วย chromium.launch({ proxy: { server: 'http://per-context' } }) จากนั้นจึงส่งพร็อกซีจริงไปยังแต่ละ browser.newContext({ proxy })
พร็อกซี VinaProxy ใช้งานร่วมกับ Firefox และ WebKit ใน Playwright ได้หรือไม่?
ได้ รูปแบบออบเจกต์ proxy: { server, username, password } ใช้งานได้เหมือนกันทั้งหมดบน Chromium, Firefox และ WebKit ทั้งใน Node.js และ Python
มีการจำกัดปริมาณข้อมูลแบนด์วิดท์เมื่อรัน Playwright ในโหมด headless หรือไม่?
ไม่ ทุกแพ็กเกจ Dedicated IPv4 และ Static ISP ของ VinaProxy มาพร้อมปริมาณการใช้งานไม่จำกัดต่อเดือน
ขยายขนาด Playwright BrowserContext ด้วย IP แบบคงที่เฉพาะคุณ
HTTP(S) พร็อกซีความเร็วสูง ไม่จำกัดปริมาณข้อมูล ครอบคลุม 7 ตำแหน่งทั่วโลก
ซื้อพร็อกซีสำหรับ Playwright