🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Trình duyệt nhận diện dấu vân tay cho Python: Sử dụng trình duyệt, Crawl4AI, Scrapling

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

08-Jul-2026

Tóm tắt ngắn gọn:

  • Một trình duyệt không có giao diện địa phương rò rỉ tự động hóa của nó trên ba trục cùng một lúc: thời gian chạy, dấu vân tay và địa chỉ IP thoát. navigator.webdrivertrue, dấu vân tay mang các mặc định không có giao diện, và mọi yêu cầu thoát từ địa chỉ của bạn — hệ thống chống bot đánh giá cả ba.
  • Browser Use, Crawl4AI và Scrapling đều nói ngôn ngữ Giao thức DevTools của Chrome, vì vậy họ có thể điều khiển trình duyệt từ xa thay vì từ địa phương. Mỗi công cụ chấp nhận một cdp_url (hoặc browser_ws_endpoint); chỉ cần chỉ vào Scrapeless và tự động hóa chạy ở phía máy chủ.
  • Trình duyệt Scraping của Scrapeless là một trình duyệt đám mây chống phát hiện: Chromium thực, dấu vân tay nhất quán theo phiên, và đường thoát dân cư ở hơn 195 quốc gia. Dấu hiệu webdriver đã biến mất và địa chỉ IP thoát là sạch, không có bản vá ẩn nào cần duy trì.
  • Sự tích hợp là một dòng cho mỗi công cụ — URL kết nối. Bạn thay đổi nguồn gốc của trình duyệt, không phải cách viết mã của bộ thu thập dữ liệu của bạn.
  • Cùng một điểm cuối WebSocket mang mọi tùy chọn dưới dạng tham số truy vấntoken, sessionTTL, proxyCountry, fingerprint, profileId — vì vậy việc nhắm mục tiêu địa lý và tái sử dụng hồ sơ chỉ là thay đổi URL, không phải viết lại mã.
  • Miễn phí để bắt đầu. Các tài khoản Scrapeless mới bao gồm thời gian chạy Trình duyệt Scraping miễn phí — đăng ký tại app.scrapeless.com.

Giới thiệu: ba bộ thu thập dữ liệu Python, một trình duyệt không bị phát hiện

Các hệ thống chống bot không còn chỉ nhìn vào một tín hiệu duy nhất. Một thách thức hiện đại đánh giá thời gian chạy của trình duyệt, dấu vân tay mà nó trình bày và con đường mạng mà nó đến — cùng lúc, trong một lần. Một trình duyệt Chromium không có giao diện địa phương thất bại ở cả ba: nó thông báo tự động hóa thông qua thuộc tính navigator.webdriver, nó được trang bị các phông chữ và hành vi canvas mặc định không có giao diện, và nó thoát từ một địa chỉ IP trung tâm dữ liệu hoặc nhà đã được các dịch vụ uy tín biết đến.

Python có ba cách phổ biến để điều khiển một trình duyệt — các tác nhân kiểu Browser Use, trình thu thập dữ liệu của Crawl4AI và các công cụ lấy dữ liệu của Scrapling — và mỗi công cụ, khi chạy cục bộ, đều thừa hưởng cùng một vấn đề ba trục. Việc gắn ghép tính năng ẩn vào một trình duyệt cục bộ có nghĩa là đuổi theo các phiên bản Chrome và các bản cập nhật chống bot bằng tay, mãi mãi.

Có một con đường ngắn hơn. Tất cả ba công cụ kết nối với một trình duyệt thông qua Giao thức DevTools của Chrome, và CDP không quan tâm trình duyệt đó nằm trên localhost hay trên đám mây. Hướng dẫn này kết nối mỗi công cụ với Trình duyệt Scraping của Scrapeless, vì vậy thời gian chạy, dấu vân tay và địa chỉ IP thoát được xử lý ở phía máy chủ và mã thu thập dữ liệu của bạn vẫn giữ nguyên như vốn có.


Những gì rò rỉ dấu vân tay của bạn

Một dấu vân tay trình duyệt là tập hợp các tín hiệu mà một trang có thể đọc mà không cần đăng nhập: tác nhân người dùng, cờ WebDriver, việc kết xuất canvas và WebGL, phông chữ đã cài đặt, múi giờ, ngôn ngữ và các chỉ số màn hình. Các khung tự động hóa làm thay đổi những tín hiệu này theo những cách dự đoán được — tiêu chuẩn W3C WebDriver yêu cầu các trình điều khiển tuân thủ phải đặt navigator.webdriver, đây chính là tín hiệu mà các kịch bản phát hiện đọc đầu tiên.

Việc sửa chữa điều này một cách cục bộ có nghĩa là ghi đè lên từng tín hiệu để nhìn nhất quán và giống con người, sau đó giữ cho những ghi đè đó luôn cập nhật khi Chromium và các trình phát hiện thay đổi. Đó là bếp chạy bảo trì mà trình duyệt đám mây loại bỏ: Scrapeless đưa ra một dấu vân tay nhất quán theo phiên, vì vậy các tín hiệu đồng nhất với nhau và với một hồ sơ Chrome thực.

Tại sao chọn Trình duyệt Scraping của Scrapeless

Trình duyệt Scraping của Scrapeless là một trình duyệt đám mây tùy chỉnh, chống phát hiện được thiết kế cho các bộ thu thập dữ liệu web và các tác nhân AI. Bởi vì nó sử dụng Giao thức DevTools của Chrome, bất kỳ công cụ Python nào có khả năng CDP đều kết nối với nó mà không thay đổi. Đối với ba công cụ trong hướng dẫn này, nó mang lại:

  • Chromium thực tự phát triển thực thi JavaScript giống như Chrome, vì vậy các ứng dụng một trang và các thử thách tương tác được giải quyết.
  • Một dấu vân tay nhất quán theo phiên — không có dấu hiệu navigator.webdriver, không có mặc định không có giao diện rò rỉ.
  • Đường thoát dân cư ở hơn 195 quốc gia, được chọn cho mỗi phiên với một giá trị proxyCountry duy nhất.
  • Khả năng bảo trì phiên thông qua các hồ sơ có thể tái sử dụng, vì vậy cookie và trạng thái đăng nhập tồn tại qua các lần chạy.
  • Một bề mặt kết nối duy nhất — mọi khả năng đều là một tham số truy vấn trên cùng một điểm cuối WebSocket.

Nhận khóa API của bạn trên gói miễn phí tại app.scrapeless.com.


Điều kiện tiên quyết

  • Python 3.11 trở lên (Browser Use cần 3.11+; Crawl4AI và Scrapling chạy trên 3.10+)
  • Một tài khoản Scrapeless và khóa API — đăng ký tại app.scrapeless.com
  • Công cụ bạn muốn kết nối: browser-use, crawl4ai, hoặc scrapling
  • Kiến thức cơ bản về terminal và Python async

Mã dưới đây đã được xác thực với API hiện tại của từng thư viện (Browser(cdp_url=...), BrowserConfig(browser_mode="cdp", cdp_url=...), DynamicSession(cdp_url=...)). Chạy nó từ đầu đến cuối cần một phiên Scrapeless trực tiếp, và ví dụ về Browser Use cần thêm một khóa API OpenAI cho mô hình ngôn ngữ của nó — cung cấp các khóa riêng của bạn để thực hiện mỗi ví dụ.

Chi tiết kết nối đầy đủ có trong tài liệu Scraping Browser.


Mẫu chung: một URL CDP

Mỗi tích hợp dưới đây đều giảm xuống cùng một ý tưởng. Scrapeless là một trình duyệt CDP có thể truy cập tại wss://browser.scrapeless.com/api/v2/browser, và các tùy chọn của nó được gửi qua các tham số truy vấn. Xây dựng URL đó một lần, đưa nó vào đối số kết nối của công cụ, và chạy bộ thu thập dữ liệu của bạn như đã viết.

python Copy
from urllib.parse import urlencode

params = {
    "token": "your_api_token_here",   # từ app.scrapeless.com
    "sessionTTL": 900,                 # giây phiên giữ sống
    "proxyCountry": "ANY",             # hoặc một mã ISO như "US", "DE", "JP"
}
cdp_url = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"

Các tham số là nhất quán giữa cả ba công cụ:

Tham số Ý nghĩa
token khóa API Scrapeless của bạn (bắt buộc)
sessionTTL thời gian sống của phiên
sessionName một nhãn cho phiên
proxyCountry mã quốc gia ISO hoặc ANY
fingerprint đối tượng dấu vân tay JSON đã mã hóa URL
profileId tái sử dụng một hồ sơ bền vững giữa các lần chạy

Browser Use: một tác nhân LLM trên một trình duyệt sạch

Browser Use điều khiển một trình duyệt với mô hình ngôn ngữ. Đối tượng Browser của nó chấp nhận một cdp_url, vì vậy toàn bộ thay đổi là xây dựng URL Scrapeless và truyền nó vào — Agent, nhiệm vụ của nó, và LLM của nó vẫn giữ nguyên.

Lưu ý: ví dụ này cần một phiên Scrapeless trực tiếp và một khóa API OpenAI cho agent.run(). Cung cấp cả hai để thực hiện.

python Copy
import asyncio, os
from urllib.parse import urlencode
from dotenv import load_dotenv
from browser_use import Agent, Browser, ChatOpenAI

def scrapeless_browser() -> Browser:
    params = {
        "token": os.environ["SCRAPELESS_API_KEY"],
        "sessionTTL": 900,
        "proxyCountry": "ANY",
    }
    ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
    return Browser(cdp_url=ws)

async def main():
    load_dotenv()
    browser = scrapeless_browser()
    await browser.start()
    agent = Agent(
        task="Đi đến Google, tìm kiếm 'Scrapeless', mở kết quả đầu tiên và trả về tiêu đề của nó",
        llm=ChatOpenAI(model="gpt-4o"),
        browser=browser,
    )
    print(await agent.run())
    await browser.kill()

asyncio.run(main())

Tác nhân giờ đây lý luận và nhấp vào một trình duyệt đám mây với dấu vân tay sạch và đầu ra dân cư. Bạn có thể theo dõi phiên trực tiếp từ Bảng điều khiển Scrapeless.

Nhận khóa API của bạn trên gói miễn phí: app.scrapeless.com

Crawl4AI: đặt chế độ trình duyệt thành CDP

Crawl4AI cung cấp hỗ trợ CDP gốc, vì vậy không cần cài đặt thêm. Đặt browser_mode="cdp" trên BrowserConfig và truyền URL Scrapeless làm cdp_url. Lưu ý rằng tích hợp của Crawl4AI biểu thị sessionTTL bằng mili giây.

Lưu ý: ví dụ này cần một phiên Scrapeless trực tiếp để thực hiện đối với một mục tiêu thực. Thêm khóa API của bạn để chạy nó.

python Copy
import asyncio
from urllib.parse import urlencode
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig

async def main():
    params = {
        "token": "your_api_token_here",
        "sessionName": "Demo Proxy",
        "sessionTTL": 1000,       # mili giây
        "proxyCountry": "ANY",
    }
    cdp_url = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"

    async with AsyncWebCrawler(
        config=BrowserConfig(headless=False, browser_mode="cdp", cdp_url=cdp_url)
    ) as crawler:
        result = await crawler.arun(
            url="https://www.scrapeless.com/en",
            config=CrawlerRunConfig(wait_for="css:.content", scan_full_page=True),
        )
        print(f"Mã trạng thái: {result.status_code}")
        print(f"Tiêu đề: {result.metadata['title']}")

asyncio.run(main())

Để gửi một dấu vân tay tùy chỉnh, mã hóa một đối tượng dấu vân tay thành JSON, mã hóa URL và truyền nó như tham số fingerprint — trình duyệt sau đó trình bày người dùng đó, nền tảng, màn hình, và địa phương hóa một cách nhất quán trong toàn bộ phiên.

Scrapling: một DynamicSession qua trình duyệt đám mây

Scrapling cung cấp phân tích nhanh chóng và thích ứng dựa trên một phiên trình duyệt. DynamicSession của nó nhận một cdp_url, và tích hợp của Scrapling truyền sessionTTL dưới dạng chuỗi giây. Phiên làm việc tự động xử lý reCAPTCHA, Cloudflare Turnstile và các thách thức AWS WAF như một phần của việc hiển thị.

Lưu ý: ví dụ này cần một phiên Scrapeless đang hoạt động để thực hiện. Thêm khóa API của bạn để chạy nó.

python Copy
import os
from urllib.parse import urlencode
from dotenv import load_dotenv
from scrapling.fetchers import DynamicSession

load_dotenv()
config = {
    "token": os.environ["SCRAPELESS_API_KEY"],
    "sessionName": "scrapling-session",
    "sessionTTL": "300",           # giây, dưới dạng chuỗi
    "proxyCountry": "ANY",
    "sessionRecording": "false",
}
ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(config)}"

with DynamicSession(cdp_url=ws, disable_resources=True) as s:
    page = s.fetch("https://httpbin.org/headers", network_idle=True)
    print(f"Độ dài nội dung: {len(page.body)}")
    print(page.json())

Scrapeless hiển thị trang trên một trình duyệt sạch; Scrapling phân tích DOM đã trả về bằng các bộ chọn của nó. Sự phân chia công việc là điểm chính — bạn giữ API trích xuất của Scrapling và chỉ thay thế trình duyệt bên dưới.


Bạn nhận lại được gì

Trên cả ba công cụ, hành vi giống nhau ở những khía cạnh quan trọng:

  • Tín hiệu navigator.webdriver vắng mặt — trình duyệt đám mây không thông báo về việc tự động hóa, vì vậy kiểm tra phát hiện đầu tiên giống như một Chrome thực.
  • Địa chỉ IP thoát khớp với proxyCountry — các trang và giá cả bị rào cản địa lý được xác định như một khách truy cập địa phương thấy; ANY cho phép Scrapeless chọn.
  • JavaScript được thực thi đầy đủ — danh sách được khách hàng hiển thị và các nội dung thách thức được đính kèm trước khi bạn đọc DOM.
  • Đơn vị sessionTTL khác nhau theo công cụ — giây cho Sử dụng Trình duyệt và Scrapling, mili giây cho Crawl4AI. Khớp theo quy ước riêng của công cụ, không phải một hằng số chung.
  • Các trường có thể vắng mặt — coi bất kỳ giá trị nào được phân tích là có thể bị bỏ qua, vì cấu trúc trang và các phần điều kiện khác nhau theo mục tiêu.

Kết luận: chọn công cụ, giữ trình duyệt

Ba công cụ phục vụ ba công việc khác nhau — một tác nhân LLM, một trình thu thập, và một trình phân tích thích ứng — nhưng chúng chia sẻ một trình duyệt chống phát hiện. Bất kể bạn chọn cái nào, tích hợp là một URL kết nối duy nhất: xây dựng wss://browser.scrapeless.com/api/v2/browser với token và các tùy chọn của bạn, đưa nó cho cdp_url của công cụ, và để Scrapeless xử lý thời gian chạy, dấu vân tay, và egress cư trú.

Để biết thêm về việc chọn một con đường egress cho một trình thu thập, xem sự khác biệt giữa VPS và proxy, và so sánh các gói trên trang định giá Scrapeless. Ghim proxyCountry tới một khu vực cư trú, khớp đơn vị sessionTTL của mỗi công cụ, và coi các trường vắng mặt là có thể bị bỏ qua.


Sẵn sàng xây dựng quy trình thu thập thông tin không bị phát hiện của bạn?

Tham gia cộng đồng của chúng tôi để nhận gói miễn phí và kết nối với các nhà phát triển nối kết các trình thu thập Python vào các trình duyệt đám mây: Discord · Telegram.

Đăng ký tại app.scrapeless.com để nhận thời gian chạy Trình duyệt Thu thập miễn phí và hướng dẫn Sử dụng Trình duyệt, Crawl4AI, hoặc Scrapling vào trình duyệt đám mây mà các mục tiêu của bạn không thể phát hiện dấu vân tay.


FAQ

Q: Tôi có phải viết lại trình thu thập của mình để sử dụng Scrapeless?
Không. Tất cả ba công cụ đã kết nối với một trình duyệt qua CDP. Bạn thay đổi mục tiêu kết nối — cdp_url hoặc điểm cuối WebSocket — và giữ mã của tác nhân, trình thu thập, hoặc trình phân tích như đã viết.

Q: Tại sao không chỉ chạy một trình duyệt không đầu địa phương?
Một trình duyệt địa phương chạy trên IP của bạn, thông báo về việc tự động hóa thông qua navigator.webdriver, và yêu cầu bạn duy trì các bản vá bí mật khi Chromium và các hệ thống chống bot thay đổi. Trình duyệt đám mây cung cấp một dấu vân tay đồng nhất và egress cư trú mà không cần bảo trì.

Q: Tôi có cần một proxy riêng không?
Không. Egress cư trú được tích hợp trong phiên — đặt proxyCountry vào một khu vực hoặc ANY. Không cần cấu hình một proxy riêng.

Q: sessionTTL là giây hay mili giây?
Nó phụ thuộc vào tích hợp của công cụ: giây cho Sử dụng Trình duyệt và Scrapling (Scrapling truyền nó dưới dạng chuỗi), mili giây cho Crawl4AI. Sử dụng quy ước riêng của mỗi công cụ.

Q: Nó có xử lý Cloudflare và CAPTCHAs không?
Trình duyệt đám mây xử lý các loại thách thức phổ biến — nội dung thách thức Cloudflare, Cloudflare Turnstile, reCAPTCHA, và AWS WAF — như một phần của việc hiển thị trên một IP cư trú sạch. Ghim proxyCountry đến một khu vực cư trú để có kết quả tốt nhất.

Q: Tôi nên sử dụng công cụ nào trong ba công cụ này?
Sử dụng Trình duyệt cho các tác nhân điều khiển bởi LLM tự quyết định các bước của mình, Crawl4AI cho việc thu thập có cấu trúc và trích xuất nội dung, và Scrapling cho việc phân tích nhanh nhạy của một trang đã lấy. Tất cả đều chia sẻ cùng một trình duyệt Scrapeless, vì vậy bạn có thể chuyển đổi mà không cần thay đổi cách kết nối của mình.

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.

Bài viết phổ biến nhất

Danh mục