Xem trực tiếp và phiên
Theo dõi một trình duyệt hosted trực tiếp, tự điều khiển hoặc chia sẻ chế độ xem, quản lý các phiên của bạn, và giữ trình duyệt chạy để kết nối lại sau.
Xem trực tiếp: theo dõi, tự điều khiển, chia sẻ
Trong dashboard, nhấp vào một phiên để xem lưu lượng của nó đã đi tới những site nào và để xem trực tiếp. Nhấn “Take control” để tự nhấp, gõ, cuộn, dán và điều hướng trong đó, ví dụ để đăng nhập hoặc hoàn tất một bước kiểm tra mà script của bạn không tự làm được. Script của bạn vẫn giữ kết nối suốt thời gian đó, nên hãy tạm dừng nó trong lúc bạn thao tác. Thao tác của con người được tính là hoạt động, nên một phiên bạn đang điều khiển sẽ không bị đóng vì idle. “Share” tạo một liên kết mà bất kỳ ai cũng mở được mà không cần tài khoản, chỉ để xem hoặc kèm quyền điều khiển, có hiệu lực từ 15 phút đến 4 giờ và không bao giờ kéo dài quá thời điểm phiên kết thúc.
Qua API:
# a live-view WebSocket for a running session (open it within 60 s)
# binary messages are JPEG frames, text messages are {"url","title","tabs"}
curl -H "authorization: Bearer cc_live_..." https://www.clearcotelabs.com/api/v1/browsers/<id>/live
# with control: the answer says "interactive": true when it was granted
curl -H "authorization: Bearer cc_live_..." "https://www.clearcotelabs.com/api/v1/browsers/<id>/live?control=1"
# a share link: control optional, 1 to 240 minutes (default 30)
curl -X POST -H "authorization: Bearer cc_live_..." -H "content-type: application/json" -d '{"control": false, "minutes": 60}' https://www.clearcotelabs.com/api/v1/browsers/<id>/shareKhi có quyền điều khiển, hãy gửi các message văn bản dạng JSON trên cùng WebSocket đó. Tọa độ là phân số (0 đến 1) của khung hình bạn đang xem; mọi thứ khác đều bị bỏ qua.
| Message | Tác dụng |
|---|---|
{"t":"mouse", | Nhấn (down), nhả (up) hoặc di chuyển (move); n là số lần nhấp, m là phím bổ trợ (Alt 1, Ctrl 2, Meta 4, Shift 8). |
{"t":"wheel", | Cuộn theo số pixel tại một điểm. |
{"t":"key", | Một phím được nhấn xuống hoặc nhả ra, đúng như bàn phím gửi đi. |
{"t":"text", | Chèn văn bản như thể được gõ vào (tối đa 5000 ký tự). |
{"t":"nav",, forward, reload, hoặc {"t":"nav", | Lịch sử, tải lại, hoặc mở một địa chỉ http(s). |
GET /api/v1/browsers/<id> có kèm traffic: 20 site tốn nhiều byte nhất của phiên đó.
Quản lý phiên
# one session: status, traffic, seconds, cost so far
curl -H "authorization: Bearer cc_live_..." https://www.clearcotelabs.com/api/v1/browsers/<id>
# stop it (a running browser closes within about 15 seconds)
curl -X DELETE -H "authorization: Bearer cc_live_..." https://www.clearcotelabs.com/api/v1/browsers/<id>
# balance + your 20 most recent sessions
curl -H "authorization: Bearer cc_live_..." https://www.clearcotelabs.com/api/v1/browsers
# filtered by status and note text, up to 100; page back with before=<a createdAt you got>
curl -H "authorization: Bearer cc_live_..." "https://www.clearcotelabs.com/api/v1/browsers?status=active,ended¬e=shop-de&limit=50"
# label a session (null clears it)
curl -X PATCH -H "authorization: Bearer cc_live_..." -H "content-type: application/json" -d '{"note": "shop-de nightly"}' https://www.clearcotelabs.com/api/v1/browsers/<id>Đặt note cho phiên khi tạo để tìm lại nó trong danh sách và trên dashboard. Để khởi động một phiên trên cùng máy chủ với một phiên trước đó (cache còn nóng, cùng một máy), hãy truyền worker của phiên đó; khi máy chủ đó đã đầy, bạn nhận 503 chứ không được chuyển sang máy chủ khác.
Một phiên cũng kết thúc khi bạn đóng trình duyệt hoặc ngắt kết nối, và khi chạm một trong các giới hạn bên dưới. Yêu cầu dừng sẽ kết thúc ngay một phiên chưa có ai kết nối; còn trình duyệt đang chạy sẽ được máy chủ của nó đóng trong vòng một chu kỳ báo cáo, khoảng 15 giây. GET trả về:
{
"id": "bs_…",
"status": "active", // see the table below
"proxy": "managed", // or "custom"
"createdAt": "…", "startedAt": "…", "endedAt": null,
"endReason": null, // set once ended, e.g. "user", "balance", "launch_failed"
"stopRequested": false,
"usage": { "bytesUp": 120334, "bytesDown": 4812009, "gb": 0.0049, "seconds": 41 },
"traffic": [ { "site": "example.com", "bytesUp": 20400, "bytesDown": 3100000 }, … ], // top 20 sites
"costEur": 0.0050,
"pricing": { "eurPerGb": 1, "eurPerHour": 0 }
}| status | Ý nghĩa |
|---|---|
pending | Created; nobody has connected yet. Counts towards the concurrency limit until it starts or expires. |
active | A browser is running and reporting usage. |
lost | No usage report for 5 minutes. Billed up to the last report; a late report puts it back to active. |
ended | Closed: you disconnected, stopped it, or a limit or the balance ended it. endReason says which. |
expired | Nobody connected within two minutes of creating it. Never billed. |
Lệnh liệt kê, GET /api/v1/browsers, trả về { balanceEur, sessions: [...] } với cùng các đối tượng phiên, mới nhất xếp trước.
Giữ trình duyệt mở và kết nối lại
Mặc định, phiên kết thúc khi client của bạn ngắt kết nối. Nếu khởi động với keepAlive: true, trình duyệt sẽ tiếp tục chạy, giữ nguyên các tab, cookie và IP đầu ra, để một script sau (hoặc chính script đó sau khi bị crash hay khi bạn gập laptop) có thể tiếp tục từ chỗ lần trước dừng lại:
# a new single-use connect URL for a running keepAlive session (connect within two minutes)
curl -X POST -H "authorization: Bearer cc_live_..." https://www.clearcotelabs.com/api/v1/browsers/<id>/connect- Để trình duyệt tiếp tục chạy bằng cách ngắt kết nối:
browser.close()của Playwright (quaconnectOverCDPnó chỉ ngắt kết nối),browser.disconnect()của Puppeteer, hoặc đơn giản là kết thúc process của bạn. - Kết thúc phiên bằng
DELETE /api/v1/browsers/<id>, hoặc bằng cách gửi lệnh CDPBrowser.close:browser.close()của Puppeteer làm việc này, còn trong Playwright thì dùngawait (await browser.newBrowserCDPSession()).send("Browser.close"). Cho đến lúc đó, trình duyệt vẫn chiếm một slot trong giới hạn đồng thời của bạn. - Mỗi lúc chỉ một client: kết nối lại trong khi đang có client khác gắn vào sẽ bị từ chối với
409, và kết nối lại vào một phiên được khởi động không cókeepAlivecũng vậy. - Các giới hạn vẫn áp dụng khi không có ai kết nối:
idleTimeoutSec(hãy tăng lên, tối đa 1800, cho trình duyệt mà bạn định quay lại dùng),timeoutSec,maxGbvà số dư của bạn. Một trang để mở vẫn tiếp tục tải lưu lượng nền, và phần này bị tính phí như mọi lưu lượng khác.