Chuyển đến nội dung

Tùy chọn và danh tính

Những gì bạn có thể đặt khi khởi động một trình duyệt hosted: các tùy chọn, mặc định stealth và danh tính, profile giữ trạng thái đăng nhập, bản phát hành được ghim và trang khởi đầu.

Tùy chọn

Tất cả đều không bắt buộc. Gửi chúng dưới dạng JSON body của lệnh tạo.

TrườngKiểuÝ nghĩa
identitystringOne label per account you run: the same device fingerprint AND the same residential IP, for as long as that IP stays online.
fingerprintstringDevice seed only (no IP pinning). The same seed gives the same device profile every time; with lightStealth on it picks from a small set of metadata profiles.
lightStealthbooleanDefault true: varies only the metadata axes the host can back up. Set false to turn it off.
platformwindows | macos | linux | androidOperating system the persona presents.
brandChrome | Edge | Opera | VivaldiBrowser brand the persona presents.
timezoneIANA namee.g. America/New_York. Use geoip instead to follow the exit IP.
localestringAccept-Language, e.g. en-US,en.
geoipbooleanTimezone and language follow the exit IP. Default true unless you set timezone or locale yourself.
proxy"managed" | { server, username?, password? }Omitted = managed residential pool. Or your own proxy: http://, socks5:// or socks5h:// (rules below).
country2-letter codeManaged pool: exit country, e.g. us, de, gb.
stateregion codeManaged pool: exit state/region, e.g. ca, ny. Needs country.
citycity nameManaged pool: exit city, e.g. "los angeles". Needs state.
proxySessionstringManaged pool: sticky label. The same label returns the same exit IP later (kept for 24 hours).
timeoutSecnumberHard limit on the session length, in seconds (10 up to the account maximum below).
idleTimeoutSecnumberEnd the session after this long without a CDP command (10–1800).
maxGbnumberStop the session after this much traffic (0.001–1000).
headlessbooleanDefault true.
keepAlivebooleanDefault false. Keep the browser running when your client disconnects, until you end it (DELETE, or the CDP command Browser.close) or a limit does; reconnect with POST /api/v1/browsers/<id>/connect.
versionstringRun a specific Clearcote release, e.g. "152.0.7977.82-r21" or "r21". Omitted = the current release. See "Pinning a release".
profile"name" | { name, persist? }Load a saved profile (cookies + site storage). With persist: true, save it back when the session ends. See "Profiles".
urlhttp(s) URLOpened in the first tab before you connect: you find it already loading.
adblockbooleanRefuse known ad and tracker hosts before they load, so they are never billed. Default false.
solveSlidersbooleanDefault true. Slide-to-verify challenges are dragged for you, in any tab or frame; false leaves them to your script. See "Slider challenges".
solveCheckboxesbooleanDefault true. "Verify you are human" checkboxes are clicked for you, in any tab or frame; false leaves them to your script. See "Checkbox challenges".
challengeServicetrue | { categories?, sites?, key?, apiKey?, mode?, maxSolves?, maxSpendEur? }Default off. Challenges the free actions cannot clear go to a solving service, with your own key or ours (billed per solve). true (or no categories) auto-selects: every challenge it recognises, in token, clearance, block-page and image; or list categories and sites yourself. See "Challenge service".
recordbooleanDefault false. Record the session as an MP4; GET /api/v1/browsers/<id>/recording once it is ready (kept 14 days).
notestringYour label for the session (at most 256 characters). Shown in the dashboard; filter by it in the list.
workerstringPlace the session on the same server as an earlier one (its worker). 503 if that server is full.

Mặc định stealth và danh tính

Mỗi phiên bắt đầu từ các thiết lập trên trang thiết lập khuyến nghị: bật lightStealth, một seed, cùng múi giờ và ngôn ngữ đi theo IP đầu ra. Với lightStealth (mặc định), seed chọn device profile từ một tập nhỏ có thay đổi số nhân CPU, bộ nhớ và pixel ratio; canvas, WebGL và audio là của chính máy chạy phiên đó. Đặt lightStealth: false để có persona đầy đủ theo từng seed: kết quả readback của canvas và WebGL nhận noise theo từng site từ seed, còn chuỗi GPU, màn hình và thiết lập audio (sample rate, latency) đi theo persona. Nếu không có identity hoặc fingerprint, mỗi phiên nhận một seed ngẫu nhiên và một IP mới.

Truyền identity: "account-42" để các phiên sau quay lại với cùng device profile, và cùng IP chừng nào IP dân cư đó còn online; đó chính là điều một tài khoản đã đăng nhập mong đợi. Danh tính là riêng tư trong tài khoản của bạn: một khách hàng khác dùng cùng nhãn sẽ nhận seed và IP của riêng họ. Bản thân danh tính không giữ cookie: muốn vậy, hãy dùng profile.

Profile: đăng nhập một lần

Profile lưu cookie, localStorage và IndexedDB của một phiên dưới một cái tên, để phiên tiếp theo dùng tên đó bắt đầu ở trạng thái đã đăng nhập. Truyền profile: { name: "shop-account", persist: true } để nạp profile và lưu lại khi phiên kết thúc, hoặc chỉ profile: "shop-account" để nạp ở chế độ chỉ đọc. Phiên đầu tiên với một tên mới sẽ bắt đầu trống và tạo ra profile đó.

javascript
// Every run: the same body. The first one starts signed out; sign in, then close the browser
// and the session saves the cookies and site storage. Every later run starts signed in.
const res = await fetch("https://www.clearcotelabs.com/api/v1/browsers", {
  method: "POST",
  headers: { authorization: "Bearer cc_live_...", "content-type": "application/json" },
  body: JSON.stringify({ profile: { name: "shop-account", persist: true }, country: "de" }),
});
  • Cùng thiết bị, cùng IP. Một profile mang theo danh tính riêng (profile:<name>), nên site thấy cùng một fingerprint, và cùng IP dân cư chừng nào IP đó còn online, giống một khách hàng quay lại. Tự truyền identity hoặc fingerprint nếu bạn muốn chọn khác, và giữ nguyên quốc gia giữa các lần chạy.
  • Mỗi lúc chỉ một phiên được ghi. Chỉ một phiên đang chạy được lưu vào một profile; phiên thứ hai với persist: true sẽ nhận 409 PROFILE_IN_USE. Các phiên chỉ đọc có thể chạy song song và thấy trạng thái đã lưu gần nhất.
  • Được lưu khi phiên kết thúc, dù bạn đóng trình duyệt, ngắt kết nối, dừng phiên hay phiên kết thúc do chạm một giới hạn. Nếu trình duyệt bị crash, trạng thái đã lưu trước đó được giữ nguyên thay vì bị thay bằng một trạng thái không đầy đủ. Session cookie (cookie không có thời hạn) bị bỏ đi, giống như trình duyệt thật bỏ chúng khi khởi động lại.
  • Tối đa khoảng 3,5 MB sau khi nén. Nếu IndexedDB của một site khiến profile lớn hơn mức đó, IndexedDB sẽ bị bỏ ra; cookie và localStorage vẫn được lưu.
  • Riêng tư. Profile chỉ thuộc về bạn (“shop-account” của một khách hàng khác là một profile khác), được lưu dưới dạng mã hóa và chỉ được giao cho máy chủ đang chạy phiên của bạn. Liệt kê bằng GET /api/v1/browsers/profiles, xóa một profile bằng DELETE /api/v1/browsers/profiles/<name>, hoặc dùng dashboard.

Đã đăng nhập ở nơi khác rồi? Đồng bộ cookie sao chép các cookie đó vào một profile, nên ngay phiên đầu tiên cũng bắt đầu ở trạng thái đã đăng nhập.

Ghim một bản phát hành

Các phiên chạy bản phát hành Clearcote hiện tại. Để chạy một bản cũ hơn, hãy truyền version: bản phát hành đầy đủ ("152.0.7977.82-r21"), chỉ phần rebuild ("r21"), một phiên bản Chromium hoặc major ("152" chọn bản build mới nhất của major đó), hoặc "latest". Đây cũng chính là các bản phát hành mà tùy chọn version của SDK tải về, nên một phiên hosted và một lần chạy local ghim cùng một giá trị sẽ dùng cùng một bản build.

javascript
const res = await fetch("https://www.clearcotelabs.com/api/v1/browsers", {
  method: "POST",
  headers: { authorization: "Bearer cc_live_...", "content-type": "application/json" },
  body: JSON.stringify({ identity: "account-1", version: "152.0.7977.82-r21" }),
});
const { connectUrl, engine, warnings } = await res.json();
// engine   -> { version: "152.0.7977.82", revision: "r21", pinned: true }
// warnings -> [ "This session runs 152.0.7977.82-r21, older than the current ... " ]
  • Kiểm tra warnings. Một bản phát hành cũ không có những gì các bản sau bổ sung. Các tùy chọn và bản sửa lỗi ra đời sau nó có thể bị thiếu, hoặc bị lặng lẽ bỏ qua thay vì bị từ chối, nên một thiết lập chạy được trên bản hiện tại có thể âm thầm không có tác dụng gì trên một bản đã ghim.
  • Trường engine trong response luôn cho biết phiên đang chạy bản phát hành nào, dù có ghim hay không.
  • Một bản phát hành không tồn tại sẽ trả về 400 với mã UNKNOWN_VERSION, và message liệt kê các bản phát hành bạn có thể chọn.
  • Phiên đầu tiên trên một bản phát hành mà máy chủ của chúng tôi chưa từng dùng có thể mất thêm tối đa một phút để khởi động trong lúc bản build được tải về. Các phiên sau trên bản đó khởi động nhanh như mọi phiên khác.

Trang khởi đầu và chặn quảng cáo

  • url mở một trang trong tab đầu tiên trước khi bạn kết nối, nên trang đã đang tải sẵn khi script của bạn gắn vào.
  • adblock: true từ chối các request tới những host quảng cáo, xác minh quảng cáo và analytics phổ biến trước khi chúng được gửi đi, nên chúng không bao giờ bị tính phí. Danh sách này được cố ý giữ ở mức thận trọng (tag manager, công cụ quản lý consent, SDK đăng nhập và CAPTCHA được để nguyên), nhưng một số ít site nhận ra việc thiếu quảng cáo; hãy tắt nó ở những nơi điều đó quan trọng.