Tài liệuTrình duyệt và CrawlAgent BrowserDấu vân tay tùy chỉnh

Dấu vân tay tùy chỉnh

Giới thiệu

Dấu vân tay trình duyệt sử dụng thông tin cấu hình trình duyệt và thiết bị của bạn để tạo ra một “dấu vân tay số” gần như duy nhất, có thể được dùng để theo dõi hoạt động trực tuyến của bạn ngay cả khi không có cookie. Tin tốt là việc cấu hình dấu vân tay là tùy chọn trong agent browser. Chúng tôi cung cấp khả năng tùy chỉnh sâu cho dấu vân tay trình duyệt, chẳng hạn như các tham số cốt lõi như user agent của trình duyệt, múi giờ, ngôn ngữ và độ phân giải màn hình. Chức năng có thể được mở rộng thông qua các tham số khởi động tùy chỉnh. Điều này phù hợp với các tình huống như quản lý nhiều tài khoản, thu thập dữ liệu và bảo vệ quyền riêng tư, sử dụng trình duyệt Chromium tự xây dựng của Scrapeless để hoàn toàn tránh bị phát hiện. Theo mặc định, việc sử dụng dịch vụ Agent Browser của chúng tôi sẽ tạo ra một dấu vân tay ngẫu nhiên cho mỗi phiên.

Khả năng cốt lõi và giới hạn

Kiểm soát User-Agent

  • Khả năng: Hỗ trợ tùy chỉnh chuỗi User-Agent trong header của yêu cầu HTTP, cho phép định nghĩa phiên bản engine trình duyệt và loại hệ điều hành.
  • Giới hạn: Hiện tại chưa thể chỉnh sửa các chi tiết của engine kết xuất (ví dụ: các tính năng kết xuất WebGL).

Ánh xạ độ phân giải màn hình

  • Khả năng: Hỗ trợ tùy chỉnh giá trị trả về của screen.width và screen.height để mô phỏng kích thước màn hình thiết bị cơ bản (phải tuân theo tỷ lệ khung hình vật lý).
  • Giới hạn: Hiện tại chưa thể giả mạo tỷ lệ pixel thiết bị (DPR) hoặc các đặc điểm của màn hình Retina.

Khóa thuộc tính nền tảng

  • Khả năng: Cho phép đặt một giá trị trả về cố định cho navigator.platform (chỉ hỗ trợ Windows/macOS/Linux), điều này ảnh hưởng đến logic phát hiện tính năng của trình duyệt.
  • Giới hạn: Hiện tại chưa thể chỉnh sửa số phiên bản hệ điều hành hoặc thông tin kiến trúc phần cứng.

Các giới hạn khác:

Tính năng này chỉ hỗ trợ điều chỉnh giới hạn đối với các tham số chuẩn hóa được trình duyệt hiển thị một cách nguyên bản. Nó không liên quan đến dấu vân tay ở cấp độ phần cứng hoặc kỹ thuật che giấu hành vi nâng cao.

Tình huống ứng dụng

  • Cô lập nhiều tài khoản cơ bản: Tránh việc phát hiện liên kết tài khoản đơn giản bằng cách phân biệt User-Agent và độ phân giải màn hình.
  • Thu thập dữ liệu nhẹ: Mô phỏng môi trường trình duyệt phổ biến (Windows + Chrome) để vượt qua các chiến lược chống thu thập cơ bản của trang web mục tiêu (ví dụ: danh sách đen User-Agent).
  • Kiểm thử tính tương thích: Xác minh logic kết xuất cơ bản của trang web dưới các hệ điều hành khác nhau (Windows/macOS) và kích thước màn hình khác nhau.

Hướng dẫn thao tác

Mô tả tham số dấu vân tay

Tên tham sốKiểuMô tả
userAgentstringĐịnh nghĩa chuỗi User-Agent trong header của yêu cầu HTTP của trình duyệt, chứa các thông tin nhận diện quan trọng như engine trình duyệt, số phiên bản và hệ điều hành. Các trang web sử dụng giá trị này để nhận diện môi trường máy khách, ảnh hưởng đến việc thích ứng nội dung và chức năng. Giá trị mặc định: Theo trình duyệt
platformenumChỉ định giá trị trả về của thuộc tính JavaScript navigator.platform, cho biết loại hệ điều hành của môi trường chạy. Các giá trị tùy chọn là “Windows”, “macOS” hoặc “Linux”. Tham số này sẽ được dùng để phát hiện tính năng và đánh giá việc kích hoạt các chức năng liên quan đến hệ thống. Giá trị mặc định: Windows
screenobjectĐịnh nghĩa các tham số đặc điểm vật lý của thiết bị hiển thị được trình duyệt báo cáo, ánh xạ trực tiếp đến đối tượng JavaScript window.screen.
screen.widthnumberChiều rộng màn hình vật lý (pixel), ánh xạ đến thuộc tính screen.width, ảnh hưởng đến media query và bố cục đáp ứng. Giá trị mặc định: Theo dấu vân tay ngẫu nhiên, giá trị tối thiểu 640.
screen.heightnumberChiều cao màn hình vật lý (pixel), ánh xạ đến thuộc tính screen.height, cùng với chiều rộng xác định các đặc điểm độ phân giải của thiết bị. Giá trị mặc định: Theo dấu vân tay ngẫu nhiên, giá trị tối thiểu 480.
localizationobjectKiểm soát cấu hình môi trường bản địa hóa của trình duyệt, bao gồm các tham số ngôn ngữ, khu vực và múi giờ, ảnh hưởng đến định dạng hiển thị và hành vi bản địa hóa nội dung.
localization.basedOnIpbooleanCó tự động đặt múi giờ và ngôn ngữ dựa trên IP hay không.
localization.timezonestringMột định danh múi giờ tuân theo định dạng cơ sở dữ liệu múi giờ IANA (ví dụ: “Asia/Shanghai”), kiểm soát hành vi múi giờ mặc định của các đối tượng ngày trong JavaScript và đầu ra Intl.DateTimeFormat, đây là một thành phần quan trọng của dấu vân tay múi giờ. Giá trị mặc định: America/New_York
localization.languages[string]Danh sách ưu tiên các ngôn ngữ được trình duyệt hỗ trợ, ánh xạ đến thuộc tính navigator.languages và header của yêu cầu HTTP Accept-Language, xác định logic lựa chọn ngôn ngữ nội dung của trang web. Giá trị mặc định: “en”, “en-US”
argsobjectChạy trình duyệt với các tham số dòng lệnh (ví dụ: --window-size, --proxy-bypass-list, v.v., tìm hiểu thêm), Xin lưu ý rằng các args sau đây không được hỗ trợ: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port

userAgent

Kiểu: string Mô tả: Định nghĩa chuỗi User-Agent trong header của yêu cầu HTTP của trình duyệt, chứa các thông tin nhận diện quan trọng như engine trình duyệt, số phiên bản và hệ điều hành. Các trang web sử dụng giá trị này để nhận diện môi trường máy khách, ảnh hưởng đến việc thích ứng nội dung và chức năng. Bạn có thể tùy chỉnh bất kỳ userAgent nào.

Giá trị ví dụ:

  • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36

platform

Kiểu: enum Mô tả: Chỉ định giá trị trả về của thuộc tính JavaScript navigator.platform, cho biết loại hệ điều hành của môi trường chạy. Tham số này sẽ được dùng để phát hiện tính năng và đánh giá việc kích hoạt các chức năng liên quan đến hệ thống.

Các giá trị chấp nhận ví dụ:

Giá trịMô tả
”Windows”Hệ điều hành Windows, giá trị mặc định
”macOS”Hệ điều hành macOS
”Linux”Hệ điều hành Linux

screen

Kiểu: object Mô tả: Định nghĩa các tham số đặc điểm vật lý của thiết bị hiển thị được trình duyệt báo cáo, ánh xạ trực tiếp đến đối tượng JavaScript window.screen.

screen.width: Chiều rộng màn hình vật lý (pixel), ảnh hưởng đến media query và bố cục đáp ứng, giá trị tối thiểu 640. screen.height: Chiều cao màn hình vật lý (pixel), cùng với chiều rộng xác định các đặc điểm độ phân giải của thiết bị, giá trị tối thiểu 480.

Giá trị ví dụ:

widthheight
19201080
1366768
1280720
7681280

localization

Kiểu: object Mô tả: Kiểm soát cấu hình môi trường bản địa hóa của trình duyệt, bao gồm các tham số ngôn ngữ, khu vực và múi giờ, ảnh hưởng đến định dạng hiển thị và hành vi bản địa hóa nội dung.

localization.basedOnIp: Có tự động đặt múi giờ và ngôn ngữ dựa trên IP hay không.

localization.timezone: Một định danh múi giờ tuân theo định dạng cơ sở dữ liệu múi giờ IANA, kiểm soát hành vi múi giờ mặc định của các đối tượng ngày trong JavaScript và đầu ra Intl.DateTimeFormat, đây là một thành phần quan trọng của dấu vân tay múi giờ.

Giá trị ví dụ:

  • America/New_York
  • Asia/Shanghai
  • Europe/London

localization.languages: Danh sách ưu tiên các ngôn ngữ được trình duyệt hỗ trợ, ánh xạ đến thuộc tính navigator.languages và header của yêu cầu HTTP Accept-Language, xác định logic lựa chọn ngôn ngữ nội dung của trang web.

Giá trị ví dụ:

  • ["fr-FR", "en-US", "zh-CN"]
  • ["en-US", "es-ES", "de-DE"]

Tham khảo: danh sách các múi giờ trong cơ sở dữ liệu tz


args

Kiểu: object Mô tả: Chạy trình duyệt với các tham số dòng lệnh, nhấp để tìm hiểu thêm, Xin lưu ý rằng các args sau đây không được hỗ trợ: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port

Giá trị ví dụ:

  • bỏ qua proxy: '--proxy-bypass-list': 'example.com'
  • đặt kích thước cửa sổ: '--window-size': '1280,1024', khuyến nghị đặt giống với dấu vân tay screen

Mã ví dụ

const { ScrapelessClient } = require('@scrapeless-ai/sdk');
const puppeteer =require('puppeteer-core');
const client = new ScrapelessClient({ apiKey: 'API Key' });
 
// custom browser fingerprint
const fingerprint = {
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36',
    platform: 'Windows',
    screen: {
        width: 1280, height: 1024
    },
    localization: {
        languages: ['zh-HK', 'en-US', 'en'], timezone: 'Asia/Hong_Kong',
    },
    args: {
        '--proxy-bypass-list': 'example.com',
        '--window-size': '1280,1024' // set window size as the same as the screen fingerprint
    }
}
 
// Create browser session and get WebSocket endpoint
const { browserWSEndpoint } = client.browser.create({
    sessionName: 'sdk_test',
    sessionTTL: 180,
    proxyCountry: 'US',
    sessionRecording: true,
    fingerprint,
});
 
(async () => {
    const browser = await puppeteer.connect({browserWSEndpoint});
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    const info = await page.evaluate(() => {
        return {
            screen: {
                width:screen.width,
                height:screen.height,
            },
            userAgent:navigator.userAgent,
            timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
            languages:navigator.languages
        };
    });
    console.log(info);
 
    await browser.close();
})();

Tuyên bố đạo đức

Chúng tôi ủng hộ việc tùy chỉnh dấu vân tay một cách có trách nhiệm:

  • Chỉ dành cho các tình huống được ủy quyền hợp pháp (chẳng hạn như thu thập dữ liệu tuân thủ của doanh nghiệp, kiểm thử kiểm soát rủi ro nội bộ).
  • Nghiêm cấm sử dụng dấu vân tay giả mạo để thực hiện gian lận trực tuyến hoặc xâm phạm quyền riêng tư của người dùng.