Hướng dẫn toàn tập Invisible Playwright: Trình duyệt ẩn danh hoàn hảo cho Web Scraping
3 phút đọc
invisible_playwright là một phiên bản trình duyệt Firefox đã được tùy biến (patched) tương thích 100% với thư viện Playwright. Công cụ này được thiết kế chuyên biệt để vượt qua các hệ thống phát hiện bot và nhận diện dấu vân tay trình duyệt (browser-fingerprint) khắt khe nhất hiện nay.
Điểm nổi bật:
-
Hiệu năng vượt rào ấn tượng: Đạt điểm số 0.90/1.0 trên Google reCAPTCHA v3 (được đánh giá là "rất giống người thật"), vượt qua FingerprintJS Pro, CreepJS (0 điểm bất thường/lies), và ẩn hoàn toàn IP thực qua WebRTC.
-
Cơ chế hoạt động cốt lõi: Thay vì dùng JavaScript để ghi đè (override) các thông số trình duyệt giống như đa số các trình duyệt anti-detect khác (điều này rất dễ bị các bot detector phát hiện qua các hàm
.toString()), thư viện này can thiệp trực tiếp vào mã nguồn C++ của Firefox. Nhờ đó, các thông số giả mạo được xuất ra một cách hoàn toàn tự nhiên (native), khiến các hệ thống chống bot không có gì để bám vào mà phát hiện. -
Tạo dấu vân tay độc nhất: Mỗi phiên làm việc (session) sẽ tự động tạo ra một dấu vân tay (fingerprint) ngẫu nhiên nhưng hoàn toàn nhất quán dựa trên dữ liệu thật của Firefox.
Hướng dẫn cài đặt
Công cụ này hiện hỗ trợ nền tảng Windows x86_64 và Linux x86_64. Yêu cầu Python 3.11 trở lên.
Bạn chạy 2 lệnh sau trong terminal để cài đặt thư viện và tải xuống trình duyệt Firefox đã được tuỳ chỉnh:
pip install git+https://github.com/feder-cr/invisible_playwright.git
python -m invisible_playwright fetch
(Lệnh fetch sẽ tải khoảng 100MB cho lần đầu tiên).
Cách sử dụng
Thư viện này đóng vai trò thay thế trực tiếp (drop-in replacement) cho Playwright. Nếu bạn đã biết dùng Playwright, bạn gần như không phải thay đổi code của mình, chỉ cần đổi chỗ import.
1. Cách dùng cơ bản (Sync - Đồng bộ)
Mỗi lần khởi tạo, nó sẽ tạo một fingerprint ngẫu nhiên:
from invisible_playwright import InvisiblePlaywright
with InvisiblePlaywright() as browser:
page = browser.new_page()
page.goto("https://example.com")
# Các hàm của Playwright vẫn hoạt động bình thường
2. Cách dùng cơ bản (Async - Bất đồng bộ)
from invisible_playwright.async_api import InvisiblePlaywright
async with InvisiblePlaywright() as browser:
page = await browser.new_page()
await page.goto("https://example.com")
3. Cố định dấu vân tay (Reproducible fingerprint)
Nếu bạn muốn lưu lại một dấu vân tay cố định cho nhiều lần chạy (ví dụ: muốn giữ nguyên cấu hình GPU, canvas hash, audio...), bạn có thể truyền tham số seed:
from invisible_playwright import InvisiblePlaywright
# Truyền một số seed bất kỳ (ví dụ: 42)
with InvisiblePlaywright(seed=42) as browser:
page = browser.new_page()
# Dấu vân tay của trình duyệt này sẽ luôn giống nhau ở mọi lần chạy với seed=42
4. Sử dụng kết hợp với Proxy
Bạn có thể dễ dàng thiết lập Proxy (hỗ trợ HTTP, HTTPS, SOCKS4, SOCKS5) để ẩn danh IP:
from invisible_playwright import InvisiblePlaywright
proxy_config = {
"server": "socks5://gate.example.com:1080",
"username": "user",
"password": "pass"
}
with InvisiblePlaywright(proxy=proxy_config) as browser:
page = browser.new_page()
page.goto("https://example.com")
5. Lệnh CLI hỗ trợ
Bạn có thể dùng command line để quản lý thư viện:
-
invisible_playwright fetch: Tải binary trình duyệt (nếu thiếu). -
invisible_playwright path: In ra đường dẫn tuyệt đối của trình duyệt đã tải. -
invisible_playwright clear-cache: Xóa tất cả binary đã lưu trong bộ nhớ tạm.