网淘吧来吧,欢迎您!

Browser Cash技能使用说明

2026-03-28 新闻来源:网淘吧 围观:12
电脑广告
手机广告

browser-cash

通过 Browser.cash 启动无限制的浏览器会话,用于网络自动化。这些会话能绕过常见的反机器人保护机制(如 Cloudflare、DataDome 等),使其成为网络爬取、测试和自动化任务的理想选择,否则这些任务可能会被屏蔽。

使用时机:任何浏览器自动化任务——网络爬取、表单填写、测试、截图。Browser.cash 会话表现为真实浏览器,并自动处理机器人检测。

设置

API 密钥存储在 clawdbot 配置中的skills.entries.browser-cash.apiKey处。

如果未配置,提示用户:

https://dash.browser.cash获取您的 API 密钥,并运行:

clawdbot config set skills.entries.browser-cash.apiKey "your_key_here"

读取密钥:

BROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)

首次使用前,检查并在需要时安装 Playwright:

if [ ! -d ~/clawd/node_modules/playwright ]; then
  cd ~/clawd && npm install playwright puppeteer-core
fi

API 基础

curl -X POST "https://api.browser.cash/v1/..." \
  -H "Authorization: Bearer $BROWSER_CASH_KEY" \
  -H "Content-Type: application/json"

创建浏览器会话

基本会话:

curl -X POST "https://api.browser.cash/v1/browser/session" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

响应:

{
  "sessionId": "abc123...",
  "status": "active",
  "servedBy": "node-id",
  "createdAt": "2025-01-20T01:51:25.000Z",
  "stoppedAt": null,
  "cdpUrl": "wss://gcp-usc1-1.browser.cash/v1/consumer/abc123.../devtools/browser/uuid"
}

包含选项:

curl -X POST "https://api.browser.cash/v1/browser/session" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "US",
    "windowSize": "1920x1080",
    "profile": {
      "name": "my-profile",
      "persist": true
    }
  }'

会话选项

选项类型描述
国家/地区字符串2位ISO国家代码(例如:"US"、"DE"、"GB")
窗口尺寸字符串浏览器尺寸,例如:"1920x1080"
代理URL字符串SOCKS5代理URL(可选)
配置文件.名称字符串用于会话持久化的命名浏览器配置文件
配置文件.持久化布尔值会话结束后保存cookies/存储数据

将Browser.cash与Clawdbot结合使用

Browser.cash返回一个WebSocket CDP URL (wss://...)。请使用以下方法之一:

选项一:通过exec直接连接CDP(推荐)

重要提示:运行Playwright/Puppeteer脚本前,请确保已安装依赖项:

[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)

在exec代码块中使用Playwright或Puppeteer直接连接CDP URL:

# 1. Create session
BROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)
SESSION=$(curl -s -X POST "https://api.browser.cash/v1/browser/session" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country": "US", "windowSize": "1920x1080"}')

SESSION_ID=$(echo $SESSION | jq -r '.sessionId')
CDP_URL=$(echo $SESSION | jq -r '.cdpUrl')

# 2. Use via Node.js exec (Playwright)
node -e "
const { chromium } = require('playwright');
(async () => {
  const browser = await chromium.connectOverCDP('$CDP_URL');
  const context = browser.contexts()[0];
  const page = context.pages()[0] || await context.newPage();
  await page.goto('https://example.com');
  console.log('Title:', await page.title());
  await browser.close();
})();
"

# 3. Stop session when done
curl -X DELETE "https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

选项二:基于Curl的自动化方案

对于简单任务,可使用curl通过CDP命令与页面交互:

# Navigate and extract content using the CDP URL
# (See CDP protocol docs for available methods)

关于Clawdbot浏览器工具的说明

Clawdbot原生浏览器工具需要HTTP控制服务器URL,而非原始WebSocket CDP。当网关配置补丁方案在Clawdbot浏览器控制服务器代理连接时生效。若需直接使用Browser.cash CDP,请采用上述exec方案。

获取会话状态

curl "https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

状态类型:启动中活跃已完成错误

停止会话

curl -X DELETE "https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

列出会话

curl "https://api.browser.cash/v1/browser/sessions?page=1&pageSize=20" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

浏览器配置文件

配置文件会跨会话持久保存cookies、localStorage和会话数据——这对于保持登录状态或维持应用状态非常有用。

列出配置文件:

curl "https://api.browser.cash/v1/browser/profiles" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

删除配置文件:

curl -X DELETE "https://api.browser.cash/v1/browser/profile?profileName=my-profile" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

通过CDP连接

cdpUrl是用于Chrome DevTools协议的WebSocket端点。可与任何兼容CDP的库一起使用。

Playwright:

const { chromium } = require('playwright');
const browser = await chromium.connectOverCDP(cdpUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] || await context.newPage();
await page.goto('https://example.com');

Puppeteer:

const puppeteer = require('puppeteer-core');
const browser = await puppeteer.connect({ browserWSEndpoint: cdpUrl });
const pages = await browser.pages();
const page = pages[0] || await browser.newPage();
await page.goto('https://example.com');

完整工作流示例

# 0. Ensure Playwright is installed
[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)

# 1. Create session
BROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)
SESSION=$(curl -s -X POST "https://api.browser.cash/v1/browser/session" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country": "US", "windowSize": "1920x1080"}')

SESSION_ID=$(echo $SESSION | jq -r '.sessionId')
CDP_URL=$(echo $SESSION | jq -r '.cdpUrl')

# 2. Connect with Playwright/Puppeteer using $CDP_URL...

# 3. Stop session when done
curl -X DELETE "https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID" \
  -H "Authorization: Bearer $BROWSER_CASH_KEY"

数据抓取技巧

当从具有懒加载或无限滚动的页面提取数据时:

// Scroll to load all products
async function scrollToBottom(page) {
  let previousHeight = 0;
  while (true) {
    const currentHeight = await page.evaluate(() => document.body.scrollHeight);
    if (currentHeight === previousHeight) break;
    previousHeight = currentHeight;
    await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
    await page.waitForTimeout(1500); // Wait for content to load
  }
}

// Wait for specific elements
await page.waitForSelector('.product-card', { timeout: 10000 });

// Handle "Load More" buttons
const loadMore = await page.$('button.load-more');
if (loadMore) {
  await loadMore.click();
  await page.waitForTimeout(2000);
}

常见模式:

  • 始终滚动以触发懒加载内容
  • 等待网络空闲:await page.waitForLoadState('networkidle')
  • 使用page.waitForSelector()在提取元素之前
  • 在操作之间添加延迟以避免速率限制

为何选择 Browser.cash 进行自动化

  • 无阻碍访问:会话可绕过 Cloudflare、DataDome、PerimeterX 及其他机器人防护
  • 真实浏览器指纹:显示为真实的 Chrome 浏览器,而非无头模式
  • 原生 CDP 支持:为 Playwright、Puppeteer 或原生 CDP 提供直接的 WebSocket 连接
  • 地理位置定位:在特定国家/地区启动会话
  • 持久化配置文件:在多个会话间保持登录状态

注意事项

  • 长时间无活动后,会话将自动终止
  • 完成后务必停止会话,以避免不必要的使用
  • 需要保持登录状态时,请使用配置文件
  • 仅支持 SOCKS5 代理类型
  • Clawdbot 从以下目录运行脚本:~/clawd/- 请在该目录下安装 npm 依赖项
  • 进行全页抓取时,始终滚动页面以触发懒加载内容
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326264名访客 今日有221篇新文章/评论