Python SDK
快速开始
安装 SDK、配置凭据,并用 Playwright 接入远端浏览器。
这一页把仓库 README、Sphinx quick start 和 quickstart 示例仓库入口整理成适合 Lex Home 的入门文档。
仓库环境准备
如果你想运行仓库中的示例代码,请按以下步骤操作:
1. 创建虚拟环境
# 进入项目目录
cd /path/to/lexmount-python-sdk
# 使用 Python 内置的 venv 创建虚拟环境
python3 -m venv venv2. 激活虚拟环境
# Linux/macOS
source venv/bin/activate
# Windows
venv\Scripts\activate3. 以开发模式安装 SDK
# 安装 SDK 和所有依赖(包括开发依赖)
pip install -e ".[dev]"这会以可编辑模式安装 SDK,代码修改会立即生效,无需重新安装。
4. 配置环境变量
在项目根目录创建 .env 文件:
LEXMOUNT_API_KEY=your-api-key-here
LEXMOUNT_PROJECT_ID=your-project-id-here
# 可选:测试环境
LEXMOUNT_BASE_URL=https://api.lexmount.cn5. 运行示例
# 从项目根目录运行
python3 examples/context_basic.py
python3 examples/session_list.py
# 或从 examples 目录运行
cd examples
python3 ./context_basic.py注意: 每次新开终端时,需要重新激活虚拟环境:
source venv/bin/activate基础用法
from lexmount import Lexmount
# 初始化客户端(从环境变量读取凭据)
client = Lexmount(
api_key="your-api-key",
project_id="your-project-id"
)
# 创建浏览器会话
session = client.sessions.create()
print(f"会话 ID: {session.id}")
print(f"连接 URL: {session.connect_url}")
# 使用完毕后关闭会话
session.close()使用上下文管理器(推荐)
上下文管理器提供自动资源清理:
from lexmount import Lexmount
# 客户端和会话会自动关闭
with Lexmount(api_key="key", project_id="proj") as client:
with client.sessions.create() as session:
print(f"使用会话: {session.id}")
# 使用会话...
# 退出时自动关闭与 Playwright 集成
from lexmount import Lexmount
from playwright.sync_api import sync_playwright
# 创建会话
client = Lexmount(api_key="key", project_id="proj")
session = client.sessions.create()
# 使用 Playwright 连接
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(session.connect_url)
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
session.close()会话超时由服务端判定。如果已经到达配置的超时时间,但平台在最近 2 分钟内仍然看到客户端 CDP 活跃消息,则该会话会被短暂保活;当这些活跃消息停止超过 2 分钟后,会话会在下一轮超时清理中被回收。
Quickstart 示例仓库
# 1. 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS 或 venv\Scripts\activate (Windows)
# 2. 安装依赖
pip install -r requirements.txt
# 3. 创建 .env 文件
cp .env.example .env
# 编辑 .env 填入实际的 API Key 和 Project ID
# office 测试环境可设置:
# LEXMOUNT_BASE_URL=https://apitest.local.lexmount.net
# 4. 运行示例
python3 demo.py # 基础演示
python3 light_demo.py # 轻量浏览器演示
python3 extension_basic.py # 插件演示
python3 proxy_demo.py # 代理演示
python3 inspect_url_demo.py # Inspect URL 演示Sphinx Quick Start 对照
Installation
Install using pip:
pip install lexmountConfiguration
Set your API credentials as environment variables:
export LEXMOUNT_API_KEY="your-api-key"
export LEXMOUNT_PROJECT_ID="your-project-id"Or pass them explicitly:
from lexmount import Lexmount
client = Lexmount(
api_key="your-api-key",
project_id="your-project-id"
)Creating a Session
from lexmount import Lexmount
client = Lexmount(api_key="key", project_id="proj")
# Create a session
session = client.sessions.create()
print(f"Session ID: {session.id}")
print(f"Connect URL: {session.connect_url}")
# Don't forget to close!
session.close()Using Context Managers
The recommended way is to use context managers for automatic cleanup:
from lexmount import Lexmount
with Lexmount(api_key="key", project_id="proj") as client:
with client.sessions.create() as session:
print(f"Using session: {session.id}")
# Session automatically closedListing Sessions
# List all sessions
result = client.sessions.list()
print(f"Total sessions: {result.pagination.total_count}")
for session in result.sessions:
print(f"{session.id}: {session.status}")
# List only active sessions
active = client.sessions.list(status="active")
print(f"Active sessions: {len(active)}")Error Handling
from lexmount import (
Lexmount,
AuthenticationError,
SessionNotFoundError,
TimeoutError
)
try:
client = Lexmount(api_key="key", project_id="proj")
session = client.sessions.create()
except AuthenticationError:
print("Invalid credentials")
except TimeoutError:
print("Request timed out")
except SessionNotFoundError:
print("Session not found")Logging
Enable debug logging:
from lexmount import set_log_level
set_log_level("DEBUG")
# Now all SDK operations will log detailed information
client = Lexmount(api_key="key", project_id="proj")
session = client.sessions.create()Office 测试环境
export LEXMOUNT_BASE_URL="https://apitest.local.lexmount.net"
Lexmount 文档