agentgo-browser
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBrowser Automation with AgentGo Cloud Browsers
基于AgentGo云浏览器的浏览器自动化
AgentGo provides a distributed cloud browser cluster. Connect via WebSocket using from .
chromium.connect()playwright@1.51.0Note: Must useexactly — newer versions have protocol incompatibilities with AgentGo's server.playwright@1.51.0
AgentGo提供分布式云浏览器集群。通过WebSocket,使用中的进行连接。
playwright@1.51.0chromium.connect()注意: 必须严格使用——较新版本与AgentGo服务器存在协议不兼容问题。playwright@1.51.0
Get an API key
获取API密钥
Register at https://app.agentgo.live/ — free credits included, no credit card required.
bash
export AGENTGO_API_KEY=your_api_key_herebash
export AGENTGO_API_KEY=your_api_key_hereInstall
安装
bash
npm install playwright@1.51.0bash
npm install playwright@1.51.0or
or
pnpm add playwright@1.51.0
undefinedpnpm add playwright@1.51.0
undefinedQuick start
快速开始
typescript
import { chromium } from "playwright"; // must be playwright@1.51.0
const options = { _apikey: process.env.AGENTGO_API_KEY };
const serverUrl = `wss://app.browsers.live?launch-options=${encodeURIComponent(JSON.stringify(options))}`;
const browser = await chromium.connect(serverUrl);
const page = await browser.newPage();
await page.goto("https://example.com");
const title = await page.title();
console.log(title);
await browser.close();typescript
import { chromium } from "playwright"; // must be playwright@1.51.0
const options = { _apikey: process.env.AGENTGO_API_KEY };
const serverUrl = `wss://app.browsers.live?launch-options=${encodeURIComponent(JSON.stringify(options))}`;
const browser = await chromium.connect(serverUrl);
const page = await browser.newPage();
await page.goto("https://example.com");
const title = await page.title();
console.log(title);
await browser.close();Connection helper
连接助手
typescript
import { chromium } from "playwright";
export async function connectAgentGo() {
if (!process.env.AGENTGO_API_KEY)
throw new Error("AGENTGO_API_KEY is not set");
const opts = encodeURIComponent(JSON.stringify({ _apikey: process.env.AGENTGO_API_KEY }));
return chromium.connect(`wss://app.browsers.live?launch-options=${opts}`);
}typescript
import { chromium } from "playwright";
export async function connectAgentGo() {
if (!process.env.AGENTGO_API_KEY)
throw new Error("AGENTGO_API_KEY is not set");
const opts = encodeURIComponent(JSON.stringify({ _apikey: process.env.AGENTGO_API_KEY }));
return chromium.connect(`wss://app.browsers.live?launch-options=${opts}`);
}Basic interactions
基础交互
typescript
const browser = await connectAgentGo();
const page = await browser.newPage();
await page.goto("https://example.com");
await page.click("button#submit");
await page.fill("input[name=email]", "user@example.com");
await page.press("input[name=email]", "Enter");
await page.screenshot({ path: "screenshot.png" });
await browser.close();typescript
const browser = await connectAgentGo();
const page = await browser.newPage();
await page.goto("https://example.com");
await page.click("button#submit");
await page.fill("input[name=email]", "user@example.com");
await page.press("input[name=email]", "Enter");
await page.screenshot({ path: "screenshot.png" });
await browser.close();Extract data
数据提取
typescript
const browser = await connectAgentGo();
const page = await browser.newPage();
await page.goto("https://news.ycombinator.com");
const items = await page.$$eval(".titleline a", els =>
els.map(a => ({ title: a.textContent, href: (a as HTMLAnchorElement).href }))
);
await browser.close();
return items;typescript
const browser = await connectAgentGo();
const page = await browser.newPage();
await page.goto("https://news.ycombinator.com");
const items = await page.$$eval(".titleline a", els =>
els.map(a => ({ title: a.textContent, href: (a as HTMLAnchorElement).href }))
);
await browser.close();
return items;Multiple pages (parallel)
多页面(并行)
typescript
const browser = await connectAgentGo();
const [page1, page2] = await Promise.all([browser.newPage(), browser.newPage()]);
await Promise.all([
page1.goto("https://site-a.com"),
page2.goto("https://site-b.com"),
]);
await browser.close();typescript
const browser = await connectAgentGo();
const [page1, page2] = await Promise.all([browser.newPage(), browser.newPage()]);
await Promise.all([
page1.goto("https://site-a.com"),
page2.goto("https://site-b.com"),
]);
await browser.close();Always close in finally
务必在finally中关闭浏览器
typescript
const browser = await connectAgentGo();
try {
const page = await browser.newPage();
await doWork(page);
} finally {
await browser.close();
}typescript
const browser = await connectAgentGo();
try {
const page = await browser.newPage();
await doWork(page);
} finally {
await browser.close();
}Specific Tasks
特定任务
- Connection & auth references/connection.md
- Session management references/session-management.md
- Running Playwright code references/running-code.md
- 连接与认证 references/connection.md
- 会话管理 references/session-management.md
- 运行Playwright代码 references/running-code.md