Python SDK
核心能力
Python SDK 提供的 sessions、contexts、extensions 和 downloads 能力。
核心功能
会话管理
创建会话
# 基础创建
session = client.sessions.create()
# 指定浏览器模式
session = client.sessions.create(browser_mode="normal")
# 挂载已上传的插件
session = client.sessions.create(
browser_mode="normal",
extension_ids=["ext_11ff6ce20fb0"]
)
# 可用的浏览器模式:
# - "normal": Docker 中的 Chrome
# - "light": Docker 中的轻量级 Chrome插件管理
# 上传插件压缩包
extension = client.extensions.upload("./test_extension.zip", name="demo-extension")
# 查看插件列表
extensions = client.extensions.list(limit=10)
for item in extensions:
print(item.id, item.name)
# 获取插件详情
extension = client.extensions.get(extension.id)
# 创建带插件的会话
session = client.sessions.create(extension_ids=[extension.id])列出会话
# 列出所有会话(带分页信息)
result = client.sessions.list()
print(f"总计: {result.pagination.total_count}")
print(f"活跃: {result.pagination.active_count}")
for session in result.sessions:
print(f"{session.id}: {session.status}")
# 按状态过滤(服务端过滤)
active_sessions = client.sessions.list(status="active")
print(f"找到 {len(active_sessions)} 个活跃会话")删除会话
# 通过会话 ID 删除
client.sessions.delete(session_id="session-id")
# 或使用会话对象
session.close()会话超时行为
- 会话超时由服务端根据该会话配置的时长统一判定。
- 如果已经到达超时时间,但平台在最近 2 分钟内仍然观察到客户端 CDP 活跃消息,则不会立刻删除该会话,而是短暂保活。
- 实际上,
connect_over_cdp、Playwright、Puppeteer 以及直接发送的 DevTools 协议消息,都会被视为 CDP 活跃。 - 当 CDP 活跃停止超过 2 分钟后,这个已经超时的会话会在下一轮超时清理时被回收。
错误处理
from lexmount import (
Lexmount,
AuthenticationError,
SessionNotFoundError,
TimeoutError,
NetworkError,
APIError
)
try:
client = Lexmount(api_key="key", project_id="proj")
session = client.sessions.create()
except AuthenticationError:
print("认证失败")
except TimeoutError:
print("请求超时")
except NetworkError:
print("网络连接失败")
except APIError as e:
print(f"API 错误: {e.status_code}")日志配置
from lexmount import set_log_level
# 启用调试日志
set_log_level("DEBUG")
# 可用级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
client = Lexmount(api_key="key", project_id="proj")
session = client.sessions.create() # 会输出详细日志Context 相关操作
client.contexts.create(metadata=...)创建服务端持久化浏览器 profile。client.contexts.list(status=..., limit=...)查看可用或锁定中的 context。client.contexts.get(context_id)读取单个 context。client.contexts.delete(context_id)删除单个 context。client.contexts.force_release(context_id)作为紧急操作清理卡死锁。
API 参考入口
This page contains the complete API reference for the Lexmount Python SDK.
Client
lexmount.Lexmount
Sessions
lexmount._sessions.SessionsResource
Session Information
lexmount._sessions.SessionInfolexmount._sessions.SessionListResponselexmount._sessions.PaginationInfo
Exceptions
lexmount.exceptions
Logging
lexmount._logging
Lexmount 文档