Trình duyệt ngón tay không bị phát hiện với Scrapeless
Specialist in Anti-Bot Strategies
TL;DR:
- Playwright kết nối với bất kỳ trình duyệt CDP nào qua
chromium.connectOverCDP(), vì vậy chỉ cần chỉ định Scrapeless là một URL. Thay thếchromium.launch()cục bộ bằng kết nối tới trình duyệt đám mây và mỗi kịch bản chạy trên một danh tính sạch. - Một trình duyệt Playwright cục bộ làm lộ tự động hóa trên ba trục: cờ
navigator.webdriver, dấu vân tay mặc định headless và địa chỉ IP thoát của bạn. Hệ thống chống bot đánh giá cả ba cùng nhau. - Trình duyệt Scraping Scrapeless giải quyết cả ba vấn đề phía máy chủ — Chromium tự phát triển thực sự, một dấu vân tay nhất quán per-session mà không có dấu hiệu
webdriver, và xuất phát từ các khu vực dân cư ở hơn 195 quốc gia. - Mã Playwright của bạn không thay đổi.
page.goto,page.locator,page.evaluatevà các lệnh chờ hoạt động hoàn toàn giống như khi chạy cục bộ; chỉ có dòng kết nối được di chuyển. - Đã xác thực trực tiếp: một phiên
connectOverCDP()đọcnavigator.webdriverlàfalsevà trả về tiêu đề thực sự của trang mục tiêu thông qua trình duyệt đám mây Scrapeless. - Miễn phí để bắt đầu. Tài khoản Scrapeless mới bao gồm thời gian chạy Scraping Browser miễn phí — đăng ký tại app.scrapeless.com.
Giới thiệu: Kết nối Playwright với một trình duyệt đọc sạch
Playwright điều khiển Chromium, Firefox hoặc WebKit thông qua một API duy nhất. Khởi động Chromium trên máy của bạn và mỗi kịch bản kế thừa các tín hiệu khiến tự động hóa trở nên rõ ràng: nó tự thông báo qua thuộc tính navigator.webdriver, ghi nhận các phông chữ và hành vi canvas mặc định headless, và xuất ra từ một địa chỉ IP mà các dịch vụ uy tín đã công nhận.
Bạn có thể tự sửa chữa từng phần trong số đó và sau đó tiếp tục sửa chữa khi Chromium và các trình phát hiện thay đổi. Có một con đường ngắn hơn. Playwright gắn với bất kỳ trình duyệt nào công khai một endpoint DevTools thông qua chromium.connectOverCDP(), và trình duyệt Scraping Scrapeless là một endpoint Chrome DevTools Protocol được truy cập qua một URL WebSocket. Chỉ định Playwright đến đó và dấu vân tay, bề mặt hành vi, và địa chỉ IP thoát sẽ di chuyển sang phía máy chủ — kịch bản của bạn vẫn ở nơi nó đang tồn tại.
Những gì bạn có thể làm với nó
- Chạy kịch bản trên các trang được bảo vệ chống bot — trình duyệt đám mây loại bỏ các thách thức trong quá trình render, vì vậy
page.gototiếp cận nội dung. - Địa phương hóa phiên — khóa
proxyCountryđể một trang hiển thị theo cách mà một khách truy cập trong thị trường đó thấy. - Gửi dấu vân tay nhất quán — truyền một đối tượng
fingerprintđể tác nhân người dùng, nền tảng, màn hình, và múi giờ giữ tính nhất quán. - Duy trì trạng thái đăng nhập — mang theo một
profileIdđể cookie và bộ nhớ cục bộ vẫn tồn tại giữa các lần chạy. - Mở rộng qua máy của bạn — các phiên chạy trên đám mây, không trên máy tính xách tay của bạn.
- Giữ cho tự động hóa giống nhau — các locator,
page.evaluate, nhấp chuột, và chờ tự động không thay đổi.
Tại sao chọn Trình duyệt Scraping Scrapeless
Trình duyệt Scraping Scrapeless là một trình duyệt đám mây có thể tùy chỉnh, chống phát hiện được thiết kế cho các trình thu thập dữ liệu web và tác nhân AI. Đối với Playwright cụ thể, nó mang lại:
- Chromium tự phát triển thực sự chạy JavaScript của trang giống như Chrome, vì vậy các SPA và thách thức đều được giải quyết.
- Dấu vân tay nhất quán per-session — không có dấu hiệu
navigator.webdriver, không có mặc định headless bị rò rỉ. - Xuất phát dân cư ở hơn 195 quốc gia, được chọn cho mỗi phiên bằng một giá trị
proxyCountry. - Tính liên tục của phiên thông qua
profileId, vì vậy quy trình xác thực giữ trạng thái của nó. - Một bề mặt kết nối — mọi tùy chọn đều là một tham số truy vấn trên cùng một endpoint WebSocket.
Lấy khóa API của bạn trên gói miễn phí tại app.scrapeless.com.
Yêu cầu
- Node.js 18 trở lên
playwright-coređã cài đặt (không cần trình duyệt đi kèm — bạn kết nối với một trình duyệt từ xa)- Một tài khoản Scrapeless và khóa API — đăng ký tại app.scrapeless.com
Chi tiết kết nối đầy đủ sống trong tài liệu Trình duyệt Scraping.
Cài đặt
Sử dụng playwright-core — nó bỏ qua việc tải xuống trình duyệt, vì Chromium sống trên đám mây.
bash
npm install playwright-core
export SCRAPELESS_API_KEY=your_api_token_here # khóa miễn phí tại https://app.scrapeless.com
Cấu hình kết nối
Endpoint là wss://browser.scrapeless.com/api/v2/browser, và mỗi tùy chọn là một tham số truy vấn. Khóa proxyCountry đến một vùng dân cư.
javascript
import { URLSearchParams } from "node:url";
function scrapelessEndpoint(extra = {}) {
Dưới đây là bản dịch sang tiếng Việt:
```javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180", // giây
proxyCountry: "US",
...extra,
});
return `wss://browser.scrapeless.com/api/v2/browser?${params}`;
}
Kết nối và chạy
Thay thế chromium.launch() bằng chromium.connectOverCDP() và truyền cho nó điểm cuối. Tất cả những gì sau đó là tiêu chuẩn của Playwright.
javascript
import { chromium } from "playwright-core";
import { URLSearchParams } from "node:url";
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.newPage();
await page.goto("https://www.scrapeless.com/en", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("tiêu đề:", await page.title());
console.log("navigator.webdriver:", await page.evaluate(() => navigator.webdriver));
await browser.close();
Chạy trực tiếp kịch bản này in ra tiêu đề trang Công Cụ Web Scraping Không Khó Khăn - Scrapeless và navigator.webdriver: false — cùng một API Playwright mà bạn đã sử dụng, được lưu trữ qua trình duyệt đám mây.
Nhận khóa API của bạn trên gói miễn phí: app.scrapeless.com
Gửi một dấu vân tay nhất quán
Một đối tượng fingerprint giữ cho danh tính được quảng bá của trình duyệt nhất quán — tác nhân người dùng, nền tảng, màn hình và múi giờ đều đồng ý. Mã hóa JSON, mã hóa URL và truyền nó như một tham số nữa. Tiêu chuẩn W3C WebDriver yêu cầu tự động hóa tuân thủ phải hiển thị cờ webdriver; trình duyệt đám mây không mang nó theo, vì vậy không có gì mâu thuẫn với dấu vân tay bạn gửi.
javascript
const fingerprint = {
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
platform: "Windows",
screen: { width: 1920, height: 1080 },
localization: { languages: ["en-US", "en"], timezone: "America/New_York" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });
Nơi mà Playwright cục bộ dừng lại
Chạy Playwright trên Chromium của riêng bạn là hoàn toàn tốt cho các trang mở, không bị bảo vệ. Sự va chạm bắt đầu khi mục tiêu của bạn đánh giá trình duyệt: một thử thách xen tín hiệu gặp rắc rối trên một IP trung tâm dữ liệu, một trang mà xác định dấu vân tay của các mặc định không có đầu, hoặc một bức tường đăng nhập muốn một danh tính ổn định qua các lần truy cập. Mỗi cái đều là một dấu vân tay, hành vi hoặc vấn đề IP — chính xác là ba cái mà trình duyệt đám mây xử lý phía máy chủ. Kết nối với Scrapeless chuyển những trường hợp đó sang một phiên được quản lý trong khi các bộ định vị và các lệnh page của bạn vẫn giữ nguyên.
Những gì bạn nhận lại
Phiên này hoạt động giống như bất kỳ phiên Playwright nào — bộ định vị, page.goto, page.evaluate, tự động chờ và cookie đều hoạt động. Một vài quan sát trung thực từ việc chạy nó qua trình duyệt đám mây:
navigator.webdriverlàfalse, vì vậy lần kiểm tra đầu tiên mà một trang chạy đọc như một Chrome thực sự.connectOverCDPtrả về mộtBrowserbình thường —newPage, ngữ cảnh và bộ định vị không đổi.- IP thoát khớp với
proxyCountry— các trang được geo-gated phản hồi như một du khách địa phương nhìn thấy chúng. - Khởi động phiên cho các trang cứng đầu — tải trang chính của trang web trước khi vào trang bảo vệ, để bề mặt hành vi đọc như một lần truy cập bình thường.
Kết luận: cùng một Playwright, trình duyệt sạch hơn
Playwright quyết định những gì cần làm; Scrapeless quyết định cách mà trình duyệt nhìn vào trang web. Việc tích hợp chỉ cần một dòng — chromium.connectOverCDP() chống lại trình duyệt đám mây — và phần còn lại của kịch bản của bạn không thay đổi. Ghi lại proxyCountry cho một khu vực dân cư, truyền một fingerprint nhất quán, và sử dụng một profileId cho các luồng xác thực. Để chạy cùng một trình duyệt đám mây từ Python, hãy xem hướng dẫn Scrapling production-scraper, và so sánh các gói trên trang giá của Scrapeless.
Sẵn sàng để xây dựng Pipline Scraping Playwright của bạn?
Tham gia cộng đồng của chúng tôi để nhận một gói miễn phí và kết nối với các nhà phát triển đang xây dựng các pipeline Playwright: Discord · Telegram.
Đăng ký tại app.scrapeless.com để nhận runtime Trình duyệt Scraping miễn phí và chỉ định connectOverCDP() vào trình duyệt đám mây mà các mục tiêu của bạn không thể nhận dạng.
Câu hỏi thường gặp
H: Tôi có phải thay đổi mã Playwright của mình không?
Không. Bạn chỉ cần thay đổi cách lấy trình duyệt — chromium.connectOverCDP(endpoint) thay vì chromium.launch(). Mọi locater và cuộc gọi page sau đó đều giống nhau.
H: playwright hay playwright-core?
Sử dụng playwright-core. Nó bỏ qua việc tải xuống trình duyệt vì bạn kết nối với trình duyệt đám mây thay vì khởi động một cái ở máy local.
H: connectOverCDP có hỗ trợ tất cả ba engine trình duyệt không?
Kết nối CDP là dựa trên Chromium, đó là những gì trình duyệt đám mây Scrapeless cung cấp. Chỉ định chromium.connectOverCDP() vào endpoint; các script hướng tới Chromium của bạn hoạt động không thay đổi.
H: Tôi có cần một proxy không?
Không. Kết nối ra ngoài từ khu dân cư đã được tích hợp sẵn — thiết lập proxyCountry thành một khu vực hoặc ANY. Không cần proxy riêng để cấu hình.
H: Việc thu thập dữ liệu web bằng Playwright có hợp pháp không?
Việc truy cập dữ liệu công khai thường được cho phép, nhưng các quy tắc khác nhau tùy theo khu vực pháp lý và trang web. Xem xét điều khoản dịch vụ của mục tiêu, tôn trọng chỉ thị của robot, và tham khảo ý kiến luật sư cho bất kỳ vấn đề nhạy cảm nào.
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.



