Camoufox là gì? Trình duyệt chống phát hiện Firefox dành cho Python
Specialist in Anti-Bot Strategies
Tóm tắt:
- Camoufox là một trình duyệt chống phát hiện mã nguồn mở được xây dựng trên Firefox giả mạo dấu vân tay của nó ở cấp độ động cơ C++ — các thuộc tính của navigator, màn hình, WebGL, phông chữ, và nhiều hơn nữa — thay vì sửa đổi chúng bằng một lớp JavaScript được chèn mà bộ phát hiện có thể đọc lại.
- Nó được phát hành dưới dạng một gói Python bao bọc Playwright, vì vậy bạn có thể điều khiển nó bằng API Playwright mà bạn đã biết:
pip install camoufox[geoip], tải trình duyệt và khởi chạy với trình quản lý ngữ cảnhCamoufox(...). - Tính năng nổi bật của nó là proxy phù hợp theo geoip: chỉ định nó vào một proxy và Camoufox tự động điều chỉnh múi giờ, ngôn ngữ và vị trí địa lý theo IP đó, vì vậy dấu vân tay và nút xuất nói cùng một câu chuyện.
- Camoufox hiện đang trong quá trình phát triển và chưa được định hướng cho sản xuất ổn định — gói
camoufoxổn định và gói alphacloverlabs-camoufoxđã phân nhánh, và một lệnhbrowser.new_page()ngây thơ có thể gặp lỗi viewport trình duyệt mà ngữ cảnhno_viewportcó thể tránh được. - Camoufox giả mạo dấu vân tay; nó không cung cấp IP hoặc giải quyết các thách thức. Đối với các mục tiêu khó khăn, Scrapeless Scraping Browser kết hợp chống phát hiện với các proxy dân cư tại hơn 195 quốc gia trong một phiên quản lý — quy trình làm việc Playwright tương tự, không cần tự quản lý.
- Miễn phí để bắt đầu. Các 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: dấu vân tay sống sót qua cái nhìn thứ hai
Hầu hết các công cụ tự động lén lút sửa chữa trình duyệt từ bên trong trang: một script được chèn sẽ ghi đè navigator.webdriver, định nghĩa lại screen, điều chỉnh WebGL. Vấn đề là chính bản sửa chữa đó có thể quan sát được — một bộ phát hiện có thể so sánh những gì JavaScript báo cáo với những gì lớp C++ sẽ báo cáo, và sự khác biệt là dấu hiệu. Camoufox chọn con đường khó hơn: nó sửa đổi Firefox ở cấp độ mã nguồn để các giá trị giả mạo chính là những gì động cơ thực sự trả về, mà không cần tiêm JavaScript để phát hiện.
Camoufox là mã nguồn mở theo Giấy phép công cộng Mozilla 2.0, bao bọc Playwright cho Python, và đã thu hút gần 10.000 sao trên GitHub. Nó cũng, theo tuyên bố của các nhà duy trì, vẫn đang trong giai đoạn phát triển tích cực và chưa nhằm vào sản xuất ổn định — điều này ảnh hưởng đến cách bạn nên áp dụng nó.
Hướng dẫn này sẽ bao gồm cài đặt Camoufox, khởi chạy nó qua Playwright, những gì nó giả mạo, tính năng proxy geoip, những khía cạnh thô mà bạn sẽ gặp, và cách nó kết hợp với trình duyệt đám mây khi mục tiêu cần nhiều hơn một dấu vân tay tốt.
Camoufox là gì?
Camoufox là một phiên bản tùy biến của Firefox mà sự chống phát hiện của nó sống trong nhị phân trình duyệt, chứ không phải trong một lớp script. Thay vì ghi đè các bề mặt dấu vân tay từ JavaScript, nó sửa đổi động cơ Gecko của Firefox để các giá trị là gốc: các thuộc tính navigator, các chỉ số màn hình và cửa sổ, nhà cung cấp và trình xử lý WebGL, phông chữ, và các bề mặt âm thanh/canvas đều báo cáo các giá trị giả mạo mà một trang không thể phân biệt với của một trình duyệt thực, vì ở cấp độ động cơ chúng là thực. Những bề mặt đó chính là những gì nghiên cứu về dấu vân tay trình duyệt — chẳng hạn như dự án Che giấu Dấu vết của EFF — cho thấy mang lại nhiều sự xác định nhất.
Bạn có thể điều khiển nó thông qua một lớp bao bọc Python mỏng xung quanh Playwright. Điều này có nghĩa là toàn bộ bề mặt Playwright — bộ chọn, evaluate, điều hướng, ngữ cảnh — đều có sẵn, và phần cụ thể của Camoufox chỉ là cách bạn khởi chạy trình duyệt và truyền các tùy chọn dấu vân tay. Tùy chọn os, chẳng hạn, xoay vòng câu chuyện toàn bộ nền tảng: yêu cầu Windows và trình duyệt báo cáo Win32 và một user agent Firefox của Windows; yêu cầu macOS và nó báo cáo phiên bản tương đương của mac — đã được xác minh bên dưới.
Cài đặt Camoufox
Camoufox được cài đặt từ PyPI. Phần bổ sung [geoip] tải về cơ sở dữ liệu mà nó sử dụng để điều chỉnh vị trí địa lý với một IP proxy:
bash
# Cài đặt lớp bao bọc Python với phần geoip bổ sung
pip install -U "camoufox[geoip]"
# Lấy bản dựng Firefox đã được chỉnh sửa mà Camoufox điều khiển
python -m camoufox fetch
python -m camoufox fetch tải xuống nhị phân trình duyệt (một bản dựng Firefox 135 beta tại thời điểm viết) và cơ sở dữ liệu GeoIP. Một lưu ý về đóng gói sẽ giúp bạn tiết kiệm cả buổi chiều: dòng phát triển được duy trì đã chuyển sang các kho mới, và các bản phát hành alpha được xuất bản dưới tên gói tách biệt, cloverlabs-camoufox. Nếu gói camoufox ổn định ném ra lỗi giao thức trình duyệt khi khởi động (xem những khía cạnh thô bên dưới), gói alpha theo dõi bản dựng trình duyệt hiện tại gần hơn.
Khởi chạy nó qua Playwright
Khởi động tối thiểu là một trình quản lý ngữ cảnh Camoufox mà cung cấp một trình duyệt Playwright. Ví dụ này đọc lại dấu vân tay giả mạo để bạn có thể thấy sự thay thế ở cấp engine hoạt động:
python
from camoufox.sync_api import Camoufox
# os="windows" làm cho toàn bộ câu chuyện nền tảng là Windows, sâu bên trong engine
with Camoufox(headless=True, os="windows") as browser:
context = browser.new_context(no_viewport=True)
page = context.new_page()
page.goto("https://example.com")
print("nền tảng:", page.evaluate("navigator.platform"))
print("ua:", page.evaluate("navigator.userAgent")[:75])
print("webdriver:", page.evaluate("navigator.webdriver"))
Chạy đoạn mã này in ra nền tảng: Win32, một user agent Firefox Windows NT 10.0; Win64; x64; rv:135.0, và webdriver: False — cờ tự động hóa mà hầu hết các thiết bị phát hiện kiểm tra trước. Từng giá trị đó đến từ engine đã được vá, không phải từ một ghi đè được chèn vào.
Giá trị no_viewport=True trên ngữ cảnh là có chủ đích: trên bản dựng trình duyệt hiện tại, đường dẫn mặc định browser.new_page() có thể kích hoạt lỗi giao thức Browser.setDefaultViewport, và việc tạo ngữ cảnh với no_viewport=True tránh được nó trong khi để lại dấu vân tay nguyên vẹn. Đây chính xác là loại rìa sắc bén mà nhãn "đang phát triển" của dự án đang cảnh báo bạn về.
Lấy khóa API của bạn trên kế hoạch miễn phí: app.scrapeless.com
Tính năng proxy geoip
Khả năng hữu ích nhất của Camoufox cho việc thu thập dữ liệu là sự nhất quán giữa dấu vân tay và mạng. Cung cấp cho nó một proxy và bật geoip, nó sẽ tự động thiết lập múi giờ, ngôn ngữ và vị trí địa lý của trình duyệt để khớp với IP của proxy:
python
from camoufox.sync_api import Camoufox
with Camoufox(
headless=True,
geoip=True, # căn chỉnh múi giờ / ngôn ngữ / vị trí địa lý với IP của proxy
proxy={
"server": "http://proxy.example.com:8000",
"username": "user",
"password": "pass",
},
) as browser:
context = browser.new_context(no_viewport=True)
page = context.new_page()
page.goto("https://example.com")
print(page.title())
Giá trị là tính nhất quán: một IP cư dân ở Berlin kết hợp với một trình duyệt báo cáo America/New_York và en-US là một mâu thuẫn mà thiết bị phát hiện có thể đánh dấu, và geoip loại bỏ điều đó. Điều mà Camoufox không làm là cung cấp cho bạn proxy - IP đó là thứ bạn cung cấp và trả tiền riêng biệt, đây là chỗ mà một trình duyệt được quản lý thay đổi phương trình.
Các rìa thô — và khoảng cách hoạt động
Có hai loại giới hạn quan trọng ở đây, và chúng khác nhau về bản chất.
Rìa ổn định là có thật và được thừa nhận. README của Camoufox nêu rõ rằng dự án đang phát triển và có thể không phù hợp cho sản xuất ổn định. Trong thực tế, điều này thể hiện qua sự phân chia phiên bản giữa các gói ổn định và alpha và các lỗi không khớp giữa các phiên bản trình duyệt như lỗi viewport phía trên. Dự án đáng để sử dụng và cải tiến nhanh chóng, nhưng việc triển khai sản xuất cần phải có việc cố định phiên bản và kiểm tra theo mục tiêu mà bạn sẽ áp dụng cho bất kỳ phụ thuộc nào trước phiên bản 1.0 — và giấy phép MPL-2.0 của nó mang theo nghĩa vụ mà một nhóm thương mại nên xem xét trước khi tích hợp vào.
Khoảng cách hoạt động là cấu trúc và vĩnh viễn. Một dấu vân tay hoàn hảo không di chuyển IP của bạn hay trả lời một trang thử thách. Camoufox chạy trên cơ sở hạ tầng của bạn, từ lối ra của bạn, vì vậy một mục tiêu giới hạn tỷ lệ IP của bạn hoặc phục vụ một trang chuyển tiếp xác thực lưu lượng sẽ phản ứng với mạng của bạn, không phải với đối tượng navigator của bạn. Bạn vẫn cần proxies (với sự kết hợp geoip ở trên) và một kế hoạch cho các thách thức — và cả hai hệ thống đó là những hệ thống riêng biệt mà bạn lắp ráp và vận hành.
Kết hợp với Scrapeless Scraping Browser
Khi một mục tiêu cần một dấu vân tay mạnh mẽ và lối ra cư dân sạch sẽ và xử lý thách thức — và bạn không muốn điều hành ba hệ thống — Scrapeless Scraping Browser kết hợp chúng trong một phiên quản lý. Đây là một trình duyệt đám mây chống phát hiện được hỗ trợ bởi Chromium tự phát triển, với các proxy cư dân ở 195+ quốc gia được chọn theo phiên, và nó cung cấp một endpoint CDP mà Playwright kết nối tới. Quy trình làm việc vẫn giữ nguyên tiêu chuẩn Playwright, giống như Camoufox:
python
import os
from playwright.sync_api import sync_playwright
# Xây dựng endpoint WebSocket của trình duyệt đám mây Scrapeless (lối ra cư dân ở Mỹ)
API_KEY = os.environ["SCRAPELESS_API_KEY"]
ws_endpoint = (
"wss://browser.scrapeless.com/api/v2/browser"
f"?token={API_KEY}&session_ttl=180&proxy_country=US"
)
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(ws_endpoint)
page = browser.contexts[0].new_page() if browser.contexts else browser.new_page()
page.goto("https://example.com", wait_until="domcontentloaded")
print(page.title())
browser.close()
Sự đánh đổi là rõ ràng: Camoufox khi bạn muốn kiểm soát dấu vân tay ở mức độ engine trên hạ tầng bạn điều hành, Scrapeless khi bạn muốn dấu vân tay, các địa chỉ IP và việc xử lý thách thức được cung cấp như một dịch vụ. Tài liệu Scrapeless có bộ tham số đầy đủ, và giá cả được tính dựa trên mức sử dụng với một tầng miễn phí. Vì việc ghép cặp geoip chỉ tốt như các proxy phía sau nó, hướng dẫn về proxy dân cư cho việc thu thập dữ liệu web bao phủ nửa thoát mà sự ghép cặp này phụ thuộc vào.
Kết luận: sự lén lút ở mức engine, với các đường may được đính danh
Cách tiếp cận của Camoufox — làm giả dấu vân tay bên trong một Firefox đã được vá thay vì ở bên ngoài — là ý tưởng mạnh mẽ hơn về mặt kỹ thuật, và việc proxy theo geoip của nó giải quyết vấn đề tính đồng nhất mà hầu hết các công cụ lén lút đều bỏ qua. Các điểm cần lưu ý là trạng thái tiền sản xuất của nó (chốt phiên bản, thử nghiệm theo mục tiêu, chú ý đến việc phân tách gói) và thực tế rằng nó là một công cụ dấu vân tay, không phải là một bộ công cụ thu thập dữ liệu hoàn chỉnh.
Triển khai nó ở nơi bạn kiểm soát hạ tầng và muốn kiểm soát sâu dấu vân tay, và định tuyến các mục tiêu khó, có giá trị cao — những mục cũng bị rào cản về danh tiếng IP và thách thức — qua một phiên Scrapeless Scraping Browser. Cả hai đều hỗ trợ Playwright, vì vậy đây là một lựa chọn định tuyến bên trong cùng một mã nguồn, không phải hai lần viết lại.
Sẵn sàng để xây dựng đường dẫn dữ liệu AI của bạn?
Tham gia cộng đồng của chúng tôi để yêu cầu một kế hoạch miễn phí và kết nối với các nhà phát triển xây dựng các đường dẫn chống phát hiện: Discord · Telegram.
Đăng ký tại app.scrapeless.com để nhận miễn phí thời gian chạy Scraping Browser và gửi các mục tiêu khó nhất của bạn qua nó trong khi Camoufox xử lý những mục bạn tự lưu trữ.
Câu hỏi thường gặp
H: Điều gì khiến Camoufox khác biệt so với việc vá một trình duyệt bình thường bằng cách sử dụng plugin lén lút?
Camoufox làm giả các giá trị dấu vân tay trong engine C++ của Firefox, vì vậy JavaScript trên trang đọc giá trị làm giả trực tiếp mà không cần tiêm giá trị thay thế nào để phát hiện. Các vá lén lút dựa trên plugin chỉnh sửa giá trị từ JavaScript, điều này để lại một khoảng trống có thể phát hiện giữa những gì kịch bản báo cáo và những gì engine sẽ báo cáo.
H: Tôi sử dụng Camoufox với Playwright hay Puppeteer?
Playwright, thông qua API Python của nó. Camoufox được phân phối dưới dạng một lớp bọc Python (camoufox.sync_api / camoufox.async_api) khởi động Firefox đã được vá và cung cấp cho bạn một đối tượng trình duyệt Playwright, vì vậy phần còn lại của kịch bản của bạn là Playwright thông thường.
H: Camoufox đã sẵn sàng cho sản xuất chưa?
Những người bảo trì nó cho biết nó đang trong quá trình phát triển và có thể không phù hợp cho sản xuất ổn định. Hãy đối xử với nó như bất kỳ phụ thuộc nào trước phiên bản 1.0: chốt phiên bản, lưu ý rằng alpha được phân phối dưới gói riêng cloverlabs-camoufox, và thử nghiệm mỗi mục tiêu trước khi dựa vào nó.
H: Camoufox có bao gồm proxy không?
Không. Camoufox làm giả dấu vân tay và, với geoip=True, điều chỉnh múi giờ và vị trí địa lý theo một proxy bạn cung cấp — nhưng proxy đó là do bạn cung cấp. Scrapeless Scraping Browser gói các proxy dân cư ở hơn 195 quốc gia vào phiên thay thế.
H: Tại sao lại ghép Camoufox với Scrapeless thay vì chỉ thêm proxy?
Bởi vì các mục tiêu khó kết hợp ba kiểm tra — chất lượng dấu vân tay, danh tiếng IP và các trang thách thức — và một công cụ dấu vân tay tự lưu trữ chỉ giải quyết được thứ nhất. Scrapeless Scraping Browser cung cấp Chromium chống phát hiện, thoát dân cư và xử lý thách thức như một phiên được quản lý, vì vậy toàn bộ bộ được bao phủ mà không cần lắp ráp và vận hành các hệ thống riêng biệt.
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.



