PyPI 包: olostep | 要求: Python 3.11+
安装
认证
从 Olostep Dashboard 获取你的 API 密钥。快速开始
根据你的使用场景,SDK 提供了两种客户端选项:同步客户端 (`Olostep`)
最适合:脚本和简单用例,当你更喜欢阻塞操作时。
同步客户端提供了一个更简单的阻塞接口,如果你对 async/await 不熟悉,这会更容易上手。
同步客户端提供了一个更简单的阻塞接口,如果你对 async/await 不熟悉,这会更容易上手。
异步客户端 (`AsyncOlostep`)
最适合:生产应用程序和处理大量并发请求。
异步客户端提供非阻塞操作,是需要高吞吐量的生产应用程序的推荐选择。
异步客户端提供非阻塞操作,是需要高吞吐量的生产应用程序的推荐选择。
同步客户端 (Olostep)
同步客户端 (Olostep) 提供了一个阻塞接口,非常适合脚本和简单用例。
基本网页抓取
批量处理
智能网页爬取
网站映射
AI 驱动的答案
异步客户端 (AsyncOlostep)
异步客户端 (AsyncOlostep) 是高性能应用程序、后端服务以及需要处理大量并发请求的推荐客户端。
基本网页抓取
批量处理
智能网页爬取
网站映射
AI 驱动的答案
SDK 参考
方法结构
两个 SDK 客户端都提供相同的清晰、Python 风格的接口,组织为逻辑命名空间:| 命名空间 | 目的 | 关键方法 |
|---|---|---|
scrapes | 单个 URL 提取 | create(), get() |
batches | 多 URL 处理 | create(), info(), items() |
crawls | 网站遍历 | create(), info(), pages() |
maps | 链接提取 | create(), urls() |
answers | AI 驱动的提取 | create(), get() |
retrieve | 内容检索 | get() |
错误处理
使用基础异常类捕获所有 SDK 错误:自动重试
SDK 会根据RetryStrategy 配置自动重试瞬态错误(网络问题、临时服务器问题)。你可以在创建客户端时通过传递 RetryStrategy 实例来自定义重试行为:
高级功能
智能输入强制
SDK 智能处理各种输入格式,以最大方便性:高级抓取选项
带自定义 ID 的批量处理
智能爬取
带过滤器的网站映射
答案检索
内容检索
日志记录
启用日志记录以调试问题:INFO(推荐),DEBUG(详细),WARNING,ERROR
重试策略配置
RetryStrategy 类通过自动重试、指数退避和抖动控制 Olostep SDK 如何处理瞬态 API 错误。这有助于确保在生产环境中可靠运行,其中临时网络问题、速率限制和服务器过载可能导致间歇性故障。
默认行为
默认情况下,SDK 使用以下重试配置:- 最大重试次数: 5 次尝试
- 初始延迟: 2 秒
- 退避: 指数(2^attempt)
- 抖动: 延迟的 10-90%(随机)
- 尝试 1:立即
- 尝试 2:~2-3.6 秒延迟
- 尝试 3:~4-7.2 秒延迟
- 尝试 4:~8-14.4 秒延迟
- 尝试 5:~16-28.8 秒延迟
自定义配置
何时发生重试
SDK 会自动重试:- 临时服务器问题 (
OlostepServerError_TemporaryIssue) - 超时响应 (
OlostepServerError_NoResultInResponse)
传输与调用者重试
SDK 有两个重试层:- 传输层:处理网络级连接失败(DNS、超时等)
- 调用者层:处理 API 级瞬态错误(由
RetryStrategy控制)
计算最大持续时间
配置示例
以下是如何为不同用例配置重试策略的一些示例。保守策略
激进策略
无重试(快速失败)
高吞吐量策略
理解抖动
抖动添加随机化以防止“雷鸣般的羊群”问题,当许多客户端同时重试时。抖动计算如下:initial_delay=2.0,jitter_min=0.1,jitter_max=0.9:
- 尝试 0:基数=2.0s,抖动=0.2-1.8s,最终=2.2-3.8s
- 尝试 1:基数=4.0s,抖动=0.4-3.6s,最终=4.4-7.6s
- 尝试 2:基数=8.0s,抖动=0.8-7.2s,最终=8.8-15.2s
最佳实践
对于生产应用程序
对于开发/测试
对于批量操作
监控和调试
SDK 在 DEBUG 级别记录重试信息:错误处理
当所有重试都耗尽时,抛出原始错误:性能考虑
- 内存:每次重试尝试使用额外的内存用于请求/响应对象
- 时间:启用重试时,总操作时间可能会显著延长
- API 限制:重试计入你的 API 使用限制
- 网络:由于重试尝试,更多的网络流量
详细错误处理
异常层次结构
Olostep SDK 为不同的故障场景提供了一个全面的异常层次结构。所有异常都继承自Olostep_BaseError。
有三种主要错误类型直接继承自 Olostep_BaseError:
Olostep_APIConnectionError- 网络级连接失败OlostepServerError_BaseError- API 服务器引发的错误OlostepClientError_BaseError- 客户端 SDK 引发的错误
为什么连接错误是分开的
Olostep_APIConnectionError 与服务器错误分开,因为它表示在 API 处理请求之前发生的网络级失败。这些是传输层问题(DNS 或 HTTP 失败、超时、连接被拒绝等),而不是 API 级错误。HTTP 状态码(4xx, 5xx)被视为 API 响应,并被分类为服务器错误,尽管它们表明存在问题。
推荐的错误处理
对于大多数用例,捕获基础错误并打印错误名称:OlostepServerError_AuthFailed)足够描述以理解问题。
细粒度错误处理
如果你需要更具体的错误处理,直接捕获特定的错误类型。避免使用OlostepServerError_BaseError 或 OlostepClientError_BaseError - 这些基类仅指示谁引发了错误(服务器 vs 客户端),而不是谁负责修复它。这是一个实现细节,对错误处理逻辑没有帮助。
相反,捕获指示实际问题的特定错误类型:
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OLOSTEP_API_KEY | 你的 API 密钥 | 必需 |
OLOSTEP_BASE_API_URL | API 基础 URL | https://api.olostep.com/v1 |
OLOSTEP_API_TIMEOUT | 请求超时(秒) | 150 |
获取帮助
资源
PyPI 包
在 PyPI 上查看
获取 API 密钥
免费注册