Thiết lập proxy trong Playwright
Playwright là một framework hiện đại dùng cho web scraping và tự động hóa, hỗ trợ nhiều ngôn ngữ lập trình và tích hợp tốt với proxy CyberYozh để tăng cường bảo mật và ổn định phiên làm việc. Ở đây, bạn sẽ học cách thiết lập Playwright và đảm bảo công việc được hoàn thành tốt.
Chuẩn bị: Lựa chọn proxy để sử dụng với Playwright
Trước khi cấu hình tích hợp proxy Playwright, bạn cần xây dựng cơ sở hạ tầng scraping/tự động hóa phù hợp. Loại proxy bạn chọn sẽ quyết định mức độ tin cậy, tính ổn định của phiên, tốc độ và cách các nền tảng nhận diện lưu lượng truy cập của bạn.
Proxy di động: Dữ liệu mạng xã hội và định vị địa lý chính xác
Proxy di động có mức độ tin cậy cao nhất trong tất cả các loại proxy, khiến chúng trở thành lựa chọn được khuyến nghị cho việc scraping mạng xã hội và các ứng dụng ưu tiên di động như Instagram, TikTokvà Snapchat.

Proxy di động CyberYozh cung cấp khả năng tùy chỉnh cao cho định vị địa lý chính xác, cài đặt fingerprint và lưu lượng không giới hạn; lý tưởng khi bạn cần Playwright mô phỏng một người dùng di động thực sự.
Proxy dân cư: Scraping dữ liệu và tự động hóa chung
Proxy dân cư được chia thành hai loại dựa trên trường hợp sử dụng của bạn:
Proxy dân cư tĩnh cung cấp một IP dân cư cố định từ một quốc gia cụ thể, được các nền tảng nhận diện như một người dùng Internet gia đình thông thường. Chúng lý tưởng cho các quy trình làm việc liên kết tài khoản.

Proxy dân cư xoay vòng sử dụng một nhóm hơn 50 triệu IP trên hơn 100 quốc gia, xoay vòng địa chỉ theo từng yêu cầu hoặc theo phiên. Chúng phù hợp nhất cho tự động hóa hàng loạt và web scraping quy mô lớn với Playwright

Chọn IP dân cư tĩnh cho quản lý tài khoản dài hạn, theo sơ đồ 1 IP = 1 tài khoản, trong khi IP xoay vòng được yêu cầu cho tất cả các hoạt động web hàng loạt, với chiến lược xoay vòng IP phù hợp dựa trên từng trường hợp sử dụng cụ thể.
Proxy datacenter: Cơ sở dữ liệu mở và kiểm thử ứng dụng
Proxy datacenter cung cấp tốc độ kết nối nhanh nhất, nhưng được liên kết với lưu lượng không phải dân cư, giống bot. Chúng hoạt động tốt cho việc scraping cơ sở dữ liệu mở, kiểm thử API và các tác vụ tốc độ cao khi các nền tảng áp dụng phát hiện bot tối thiểu, nhưng có thể bị hạn chế nhanh chóng trên các nền tảng mạng xã hội như Reddit hoặc LinkedIn.

Công cụ bổ sung: IP Checker để đảm bảo chất lượng
CyberYozh cung cấp IP Checker quét mọi địa chỉ IP với nhiều cơ sở dữ liệu gian lận, trả về điểm tin cậy và lịch sử đầy đủ. Trước khi xoay sang IP mới trong phiên Playwright của bạn, hãy chạy nó qua trình kiểm tra để xác nhận nó sẽ không kích hoạt lệnh cấm.

Nhận quyền truy cập CyberYozh API để tự động hóa xoay vòng IP và kiểm tra mọi địa chỉ IP đến trước khi xoay, đảm bảo chất lượng của nó.
Bắt đầu với cài đặt Playwright: Chọn ngôn ngữ lập trình
Playwright hỗ trợ bốn ngôn ngữ lập trình. Trước khi bắt đầu cài đặt Playwright và cấu hình proxy, hãy chọn ngôn ngữ phù hợp với stack công nghệ của bạn. Hướng dẫn này sử dụng Python, là lựa chọn phổ biến nhất cho các quy trình làm việc với proxy, nhưng cả bốn tùy chọn đều được trình bày trong bảng và hướng dẫn ngắn bên dưới.
Ngôn ngữ | Điểm khác biệt chính | Trường hợp sử dụng chính | Khi nào nên chọn |
Node.js (JS/TS) | Ngôn ngữ mặc định của Playwright; hỗ trợ TypeScript sẵn có; cộng đồng và tài liệu lớn nhất | Kiểm thử end-to-end, tự động hóa trình duyệt, CI/CD frontend | Nhóm của bạn làm việc với JS/TS, hoặc bạn cần bộ công cụ trưởng thành nhất |
Python | Được sử dụng rộng rãi nhất trong scraping/ML; bất đồng bộ thông qua asyncio; tích hợp với Requests, Scrapy | Web scraping, data pipeline, tự động hóa proxy, thu thập dữ liệu ML | Bạn cần scraping sử dụng nhiều proxy hoặc tích hợp data science |
.NET (C#) | Phân phối qua NuGet; kiểu dữ liệu mạnh, tốt cho QA doanh nghiệp | Tự động hóa kiểm thử doanh nghiệp, ứng dụng .NET | Tổ chức của bạn sử dụng stack .NET |
Java | Phân phối qua Maven/Gradle; tích hợp JUnit | Ứng dụng doanh nghiệp Java, kiểm thử liên quan đến Android | Dự án của bạn dựa trên Java hoặc yêu cầu hệ sinh thái JVM |
Node.js
Ngôn ngữ mặc định và được tài liệu hóa đầy đủ nhất của Playwright. TypeScript được hỗ trợ nguyên bản: Playwright được cài đặt bằng npm, không cần cấu hình thêm.
npm init playwright@latestPython
Ngôn ngữ ưu tiên cho các tác vụ proxy, scraping và tự động hóa dữ liệu với Playwright. Yêu cầu Python 3.8+ và thường được cài đặt qua PyPI (pip).
pip install playwright
playwright install.NET (C#)
Phân phối dưới dạng gói NuGet. Yêu cầu PowerShell (pwsh) để chạy bước cài đặt trình duyệt.
dotnet new console -n PlaywrightDemo
cd PlaywrightDemo
dotnet add package Microsoft.Playwright
dotnet build
pwsh bin/Debug/netX/playwright.ps1 install Java
Phân phối dưới dạng module Maven (mvn). Thêm dependency vào pom.xml trong Maven, và các trình duyệt sẽ tự động tải xuống khi biên dịch lần đầu.
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.59.0</version>
</dependency> Sau đó chạy lệnh:
mvn compile exec:java -D exec.mainClass="org.example.App"Cấu hình proxy Playwright với Python
Ở đây, chúng ta sẽ khám phá cách triển khai phiên scraping Playwright tổng quát với proxy CyberYozh. Mặc dù ngôn ngữ mặc định của Playwright là Node.js/TypeScript, chúng ta sẽ sử dụng Python trong ví dụ này, vì Playwright với Python được sử dụng rộng rãi cho tự động hóa web, scraping và các tác vụ liên quan đến proxy khác. Nếu bạn cần sử dụng TypeScript hoặc có trường hợp sử dụng cụ thể yêu cầu C# hoặc Java, chỉ cần tham khảo phiên bản tài liệu Playwright tương ứng; việc điều chỉnh code khá dễ dàng.
Máy chủ proxy Playwright là một trung gian mạng chuyển tiếp các yêu cầu của trình duyệt thông qua một địa chỉ IP khác. Playwright truyền cấu hình proxy trực tiếp tại thời điểm khởi chạy trình duyệt hoặc cấp độ ngữ cảnh, định tuyến toàn bộ lưu lượng qua máy chủ được chỉ định.
1. Lấy proxy cho tác vụ của bạn
Đăng nhập vào tài khoản CyberYozhcủa bạn, điều hướng đến My Proxies, và chọn loại proxy phù hợp với tác vụ của bạn (mobile, residential static, residential rotating, datacenter).

Sau khi mua, mở thẻ proxy, nhấp Generate Credentials, chọn chế độ luân chuyển của bạn (Random IP, Short Session hoặc Long Session), và điều hướng đến host, port, username và password.

Các thông tin xác thực này sẽ được sử dụng trong suốt quá trình thiết lập.
2. Tải xuống và cài đặt Playwright
Cài đặt thư viện Playwright và các tệp nhị phân trình duyệt của nó qua PyPI:
pip install playwright
playwright installLệnh này tải xuống các tệp nhị phân Chromium, Firefox và WebKit. Đối với scraping, Chromium là lựa chọn tiêu chuẩn.
3. Tổ chức cấu trúc dự án
Tạo một thư mục dự án riêng (ví dụ: scraper/). Giữ thông tin xác thực tách biệt khỏi code và xác định đường dẫn đầu ra rõ ràng cho dữ liệu đã scrape:
- Tệp .env cho thông tin xác thực proxy (luôn thêm vào .gitignore)
- scraper.py làm script Playwright chính
- requirements.txt cho các phụ thuộc
- Thư mục output/ cho dữ liệu đã scrape (CSV/JSON)
4. Thêm cấu hình proxy vào tệp .env
Mở tệp .env của bạn trong VS Code hoặc bất kỳ trình soạn thảo nào và sao chép-dán thông tin xác thực CyberYozh của bạn. Luôn thêm .env vào .gitignore để ngăn chặn rò rỉ thông tin xác thực vào kho lưu trữ kiểm soát phiên bản.
HTTP_PROXY=http://username:password@proxy-server-ip:host
SOCKS5_PROXY=socks5://username:password@proxy-server-ip:host
Đối với cấu hình proxy SOCKS5 Playwright, sử dụng sơ đồ socks5:// . Đối với việc sử dụng proxy HTTP Playwright tiêu chuẩn, sử dụng http:// scheme. Đảm bảo bao gồm đúng cổng từ bảng điều khiển CyberYozh. Nếu bạn sử dụng CyberYozh API, khóa API của bạn cũng phải được chỉ định tại đây.
CYBERYOZH_API_KEY=Your_API_URL_Key
5. Tạo script scraping/tự động hóa
Tạo file test Python sử dụng Playwright. Nó nên có cấu trúc gần như sau:
Tạo thực thể trình duyệt và context với cài đặt proxy
Thiết lập luân chuyển tự động và kiểm tra IP qua CyberYozh API
Truy cập trang web mục tiêu và thực hiện scraping qua thư viện Requests
Thiết lập xử lý lỗi
Chỉ định thư mục đầu ra cho dữ liệu đã scrape
Script dưới đây triển khai đầy đủ thiết lập proxy Playwright trong Python: thực thể trình duyệt, thực thể context với xác thực proxy Playwright, luân chuyển IP tự động qua CyberYozh API, thực thi request, xử lý lỗi và xuất file.
import asyncio
import os
import json
import requests
from dotenv import load_dotenv
from playwright.async_api import async_playwright
load_dotenv()
PROXY_URL = os.getenv("HTTP_PROXY") # or SOCKS5, from the .env document
CYBERYOZH_API_KEY = os.getenv("CYBERYOZH_API_KEY") # API key from the .env document
TARGET_URL = "https://httpbin.org/ip" # the website to scrape; here is the test one
OUTPUT_FILE = "output/results.json" # output folder
def check_ip_quality(ip: str) -> bool:
"""Use CyberYozh IP Checker API to verify trust score before rotating."""
try:
response = requests.get(
f"https://app.cyberyozh.com/api/v1/ip-check?ip={ip}",
headers={"Authorization": f"Bearer {CYBERYOZH_API_KEY}"},
timeout=5
)
score = response.json().get("fraud_score", 100)
return score < 50 # Accept IPs with fraud score below 50
except Exception:
return True # Allow on API error
async def scrape(proxy_url: str) -> dict:
"""Run a single Playwright scraping session with proxy."""
# Parse proxy credentials for Playwright proxy authentication
from urllib.parse import urlparse
parsed = urlparse(proxy_url)
proxy_config = {
"server": f"{parsed.scheme}://{parsed.hostname}:{parsed.port}",
"username": parsed.username,
"password": parsed.password,
}
async with async_playwright() as p:
# Browser entity (headless to save traffic): launch with proxy server
browser = await p.chromium.launch(headless=True)
# Context entity: proxy settings applied per context
context = await browser.new_context(proxy=proxy_config)
page = await context.new_page()
try:
await page.goto(TARGET_URL, timeout=30000)
content = await page.inner_text("body")
result = json.loads(content)
return {"status": "ok", "ip": result.get("origin")}
except Exception as e:
return {"status": "error", "error": str(e)}
finally:
await context.close()
await browser.close()
async def main():
results = []
for i in range(5):
print(f"Request {i+1}: using proxy {PROXY_URL}")
data = await scrape(PROXY_URL)
print(f" → IP: {data.get('ip')} | Status: {data.get('status')}")
results.append(data)
os.makedirs("output", exist_ok=True)
with open(OUTPUT_FILE, "w") as f:
json.dump(results, f, indent=2)
print(f"Results saved to {OUTPUT_FILE}")
asyncio.run(main())Xem thêm hướng dẫn liên quan: Cấu hình Luân chuyển Proxy trong Python.
6. Chạy test và luân chuyển proxy
Khởi chạy scraper từ thư mục gốc dự án của bạn:
python scraper.pyXác minh rằng mỗi request ghi lại một địa chỉ IP khác nhau (xác nhận luân chuyển đang hoạt động) và file output/results.json được điền dữ liệu. Sử dụng CyberYozh API để luân chuyển tự động và kiểm tra chất lượng tự động qua IP Checker: các proxy có điểm gian lận cao sẽ bị từ chối trước chu kỳ luân chuyển tiếp theo.
Xem thêm: Hướng dẫn Tự động hóa Web Scraping
Tóm tắt: Sử dụng Playwright với hạ tầng CyberYozh
Với proxy Playwright đã được cấu hình và thông tin xác thực CyberYozh đang hoạt động, bạn có thể chạy scraping đa mục tiêu, tự động hóa theo vị trí địa lý và quy trình quản lý tài khoản ở quy mô lớn, định tuyến mọi phiên trình duyệt qua IP residential hoặc mobile sạch với xác thực điểm gian lận, đồng thời xuất dữ liệu có cấu trúc theo định dạng bạn chọn.
Câu hỏi thường gặp
Máy chủ proxy Playwright là gì và tại sao tôi cần nó?
Máy chủ proxy Playwright định tuyến lưu lượng trình duyệt Playwright qua một địa chỉ IP trung gian, che giấu nguồn gốc của bạn. Nó ngăn chặn cấm IP, vượt qua hạn chế địa lý và làm cho các phiên tự động xuất hiện như lưu lượng người dùng thực.
Làm cách nào để cài đặt proxy trong Playwright?
Không có bước cài đặt riêng biệt. Sau khi chạy Playwright install, truyền thông tin xác thực proxy của bạn qua tham số proxy={"server": "...", "username": "...", "password": "..."} tại chromium.launch() hoặc browser.new_context().
Làm cách nào để sử dụng Playwright với xác thực proxy?
Truyền các khóa "username" và "password" bên trong dict proxy tại lúc khởi chạy trình duyệt hoặc tạo context. Playwright xử lý xác thực proxy Playwright một cách tự nhiên mà không cần thư viện bổ sung.
Playwright có hỗ trợ proxy SOCKS5 không?
Có. Sử dụng socks5:// trong URL máy chủ với số cổng chính xác.
Sự khác biệt giữa proxy Playwright được thiết lập ở cấp trình duyệt và cấp ngữ cảnh là gì?
Proxy cấp trình duyệt áp dụng cho tất cả các ngữ cảnh và trang. Proxy cấp ngữ cảnh cho phép sử dụng các proxy Playwright khác nhau cho mỗi phiên, hỗ trợ quy trình làm việc đa tài khoản trong đó mỗi ngữ cảnh sử dụng một IP riêng biệt.
Loại proxy CyberYozh nào tốt nhất cho việc thu thập dữ liệu web Python dựa trên proxy Playwright?
Sử dụng proxy dân cư xoay vòng cho việc thu thập dữ liệu hàng loạt (hơn 50 triệu IP, xoay vòng theo yêu cầu) và proxy di động cho các mục tiêu mạng xã hội. Proxy trung tâm dữ liệu phù hợp cho các cơ sở dữ liệu mở yêu cầu tốc độ.
Làm cách nào để xoay vòng proxy trong Playwright tự động?
Với proxy dân cư xoay vòng của CyberYozh, việc xoay vòng được tích hợp sẵn: sử dụng hậu tố -res-any trong tên người dùng của bạn và mỗi yêu cầu mới sẽ nhận được một IP mới. Không cần quản lý nhóm IP thủ công.
Tôi có thể sử dụng proxy Playwright với asyncio của Python để thu thập dữ liệu đồng thời không?
Có. Sử dụng async_playwright với asyncio. Mỗi lần gọi browser.new_context(proxy=...) có thể nhận cấu hình proxy khác nhau, cho phép các phiên song song với các IP riêng biệt.
Tại sao trình thu thập dữ liệu Playwright của tôi vẫn bị chặn ngay cả khi sử dụng proxy?
Việc bị chặn xảy ra khi các IP có điểm gian lận cao, xoay vòng quá nhanh hoặc dấu vân tay trình duyệt không nhất quán. Xác minh chất lượng IP bằng CyberYozh IP Checker và cân nhắc kết hợp proxy với trình duyệt chống phát hiện cho các mục tiêu bảo mật cao.
Làm cách nào để sử dụng biến môi trường cho thông tin xác thực proxy Playwright một cách an toàn?
Lưu trữ thông tin xác thực trong tệp .env (được thêm vào .gitignore), tải chúng bằng python-dotenv và truyền vào chromium.launch(). Không bao giờ mã hóa cứng chuỗi proxy trong mã nguồn hoặc commit chúng vào hệ thống quản lý phiên bản.