使用指南
如何使用 Lexmount Browser 核心功能
快速开始
本指南将帮助您快速开始使用 Lexmount Browser 核心功能。我们提供了Python和Node.js两种语言的SDK,您可以根据自己的需求选择合适的版本。
Python SDK 使用指南
快速获取示例
您也可以直接访问我们在 GitHub 上的 Python SDK 快速开始仓库 获取即用型示例。
前提条件
请确保您已安装 Python 3.7 或更高版本。
1. 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或者在 Windows 上使用
# venv\Scripts\activate2. 安装依赖
pip install -r requirements.txt3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入您的 API Key 和 Project ID重要提示
请确保妥善保管您的 API Key,不要将其泄露给他人。
4. 运行示例
我们提供了两个示例脚本,帮助您快速了解如何使用我们的服务:
python demo.py # 基础演示
python light-demo.py # 轻量级浏览器演示示例代码详解
基础演示 (demo.py)
这个示例展示了如何创建一个基本的会话并执行简单的浏览器操作:
# 导入必要的库
from playwright.sync_api import Playwright, sync_playwright
from dotenv import load_dotenv
from lexmount import Lexmount
# 首先加载环境变量
load_dotenv(override=True)
def run(playwright: Playwright) -> None:
# 初始化 Lexmount 客户端
lm = Lexmount() # 自动从环境变量读取凭证
# 在 Lexmount 上创建一个会话
session = lm.sessions.create()
# 连接到远程会话
chromium = playwright.chromium
browser = chromium.connect_over_cdp(session.connect_url)
context = browser.contexts[0]
page = context.pages[0]
# 在远程浏览器标签页上执行 Playwright 操作
page.goto("https://dev.lexmount.net/")
page_title = page.title()
assert page_title == "Lexmount Browser - AI-Powered Cloud Browser Service", f"页面标题不是'Lexmount Browser - AI-Powered Cloud Browser Service',而是'{page_title}'"
page.screenshot(path="screenshot.png")
# 关闭页面和浏览器
page.close()
browser.close()
if __name__ == "__main__":
with sync_playwright() as playwright:
run(playwright)轻量级浏览器演示 (light-demo.py)
这个示例展示了如何使用 chrome-light-docker 模式来高效地提取网页链接:
from playwright.sync_api import Playwright, sync_playwright
from dotenv import load_dotenv
from lexmount import Lexmount
# 首先加载环境变量
load_dotenv(override=True)
def run(playwright: Playwright) -> None:
"""演示使用 chrome-light-docker 提取网页链接"""
print("🔗 提取新闻链接演示")
# 初始化 Lexmount 客户端
lm = Lexmount() # 从环境变量读取凭证
# 创建一个 chrome-light-docker 模式的会话
session = lm.sessions.create(browser_mode="chrome-light-docker")
# 连接到远程会话
chromium = playwright.chromium
browser = chromium.connect_over_cdp(session.connect_url)
context = browser.contexts[0]
page = context.pages[0]
# 在远程浏览器标签页上执行 Playwright 操作
page.goto("https://news.sina.cn/")
# 提取所有链接
links = page.evaluate('''() => {
return Array.from(document.querySelectorAll('a[href]')).map(a => a.href);
}''')
# 保存到文件
with open("links.txt", "w", encoding="utf-8") as f:
for link in links:
f.write(link + "\n")
print(f"✅ 已提取 {len(links)} 个链接,保存到: links.txt")
# 关闭页面和浏览器
page.close()
browser.close()
if __name__ == "__main__":
with sync_playwright() as playwright:
run(playwright)常见问题
Node.js SDK 使用指南
快速获取示例
您可以直接访问我们在 GitHub 上的 JavaScript/TypeScript SDK 快速开始仓库 获取即用型示例。
前提条件
请确保您已安装 Node.js 14 或更高版本。您可以从 Node.js 官网 下载并安装。
1. 安装依赖
npm install2. 配置环境变量
在项目根目录创建 .env 文件:
# .env
LEXMOUNT_API_KEY=your_api_key_here
LEXMOUNT_PROJECT_ID=your_project_id_here您可以从以下地址获取凭证:https://dev.lexmount.net/
3. 运行示例
# 基础演示
npm run demo
# 轻量级浏览器演示
npm run light-demo示例代码详解
基础演示 (demo.ts)
这个示例展示了如何创建一个基本的会话并执行简单的浏览器操作:
/**
* 基础 Lexmount 演示
* - 访问 Lexmount 网站
* - 验证页面标题
* - 截取屏幕截图
*/
import { config } from 'dotenv';
import { chromium } from 'playwright';
import { Lexmount } from 'lexmount';
// 加载环境变量
config();
async function main() {
console.log('🚀 启动 Lexmount 基础演示...\n');
// 初始化 Lexmount 客户端
// 自动从环境变量读取 LEXMOUNT_API_KEY 和 LEXMOUNT_PROJECT_ID
const lm = new Lexmount();
console.log('📡 创建浏览器会话...');
// 在 Lexmount 上创建一个会话
const session = await lm.sessions.create();
console.log(`✓ 会话创建成功: ${session.sessionId}\n`);
// 连接到远程会话
const browser = await chromium.connectOverCDP(session.connectUrl);
const context = browser.contexts()[0];
const page = context.pages()[0];
// 在远程浏览器上执行 Playwright 操作
console.log('🌐 正在访问 Lexmount 网站...');
await page.goto('https://dev.lexmount.net/');
const pageTitle = await page.title();
console.log(`📄 页面标题: ${pageTitle}`);
// 验证页面标题
const expectedTitle = 'Lexmount Browser - AI-Powered Cloud Browser Service';
if (pageTitle === expectedTitle) {
console.log('✓ 页面标题验证成功!\n');
} else {
throw new Error(
`页面标题不匹配!\n期望: ${expectedTitle}\n实际: ${pageTitle}`
);
}
// 截取屏幕截图
console.log('📸 正在截取屏幕截图...');
await page.screenshot({ path: 'screenshot.png' });
console.log('✓ 截图已保存至: screenshot.png\n');
// 清理资源
await page.close();
await browser.close();
console.log('✨ 演示成功完成!');
}
main().catch((error) => {
console.error('❌ 错误:', error.message);
process.exit(1);
});轻量级浏览器演示 (light-demo.ts)
这个示例展示了如何使用 chrome-light-docker 模式来高效地提取网页链接:
/**
* 轻量级浏览器演示
* - 使用 chrome-light-docker 模式
* - 访问新浪新闻
* - 提取所有链接并保存到 links.txt
*/
import { config } from 'dotenv';
import { chromium } from 'playwright';
import { Lexmount } from 'lexmount';
import { writeFileSync } from 'fs';
// 加载环境变量
config();
async function main() {
console.log('🔗 提取新闻链接演示\n');
// 初始化 Lexmount 客户端
const lm = new Lexmount();
console.log('📡 创建轻量级浏览器会话...');
// 创建一个 chrome-light-docker 模式的会话
const session = await lm.sessions.create({
browserMode: 'chrome-light-docker',
});
console.log(`✓ 会话创建成功: ${session.sessionId}\n`);
// 连接到远程会话
const browser = await chromium.connectOverCDP(session.connectUrl);
const context = browser.contexts()[0];
const page = context.pages()[0];
// 访问新浪新闻
console.log('🌐 正在访问新浪新闻...');
await page.goto('https://news.sina.cn/');
console.log('✓ 页面加载完成\n');
// 提取所有链接
console.log('🔍 正在提取链接...');
const links = await page.evaluate(() => {
return Array.from(document.querySelectorAll('a[href]')).map(
(a) => (a as HTMLAnchorElement).href
);
});
// 保存到文件
const filename = 'links.txt';
writeFileSync(filename, links.join('\n'), 'utf-8');
console.log(`✅ 已提取 ${links.length} 个链接,保存到: ${filename}\n`);
// 清理资源
// 注意:已注释掉以保持会话活动以便检查
// await page.close();
// await browser.close();
console.log('✨ 演示成功完成!');
}
main().catch((error) => {
console.error('❌ 错误:', error.message);
process.exit(1);
});
Lexmount 文档