SuperAPI AI 工具集

apify-sdk-patterns

数据与分析

查看项目

更新于 10-16 09:08

技能介绍

用途

该技能面向使用 Apify SDK 与 apify-client 的 TypeScript 开发者,提供生产环境可用的代码模式。它同时覆盖两条主线:一是用 apify SDK 构建 Actor,二是用 apify-client 远程调用 Actor。内容以可复用的骨架代码为主,帮助开发者快速搭建爬虫、数据存储与远程调用逻辑。

主要能力

技能包含八种模式:

  1. 类型化客户端单例:创建一个延迟初始化、带令牌校验的 ApifyClient 并全局复用,提供 resetClient() 便于测试。
  2. Crawlee 爬虫选择:根据页面类型选择 CheerioCrawler(静态 HTML、服务端渲染页面、API)、PlaywrightCrawler(SPA、JavaScript 密集页面、复杂交互)或 PuppeteerCrawler(仅 Chromium 或遗留 Puppeteer 代码)。
  3. Actor 生命周期与错误处理:用 Actor.main() 包装输入校验、条件代理和 failedRequestHandler。
  4. 数据集操作:在 Actor 内部推送数据,在外部应用列出、创建、下载数据集。
  5. 键值存储操作:按内容类型存储 JSON 配置和二进制产物。
  6. 代理配置:区分数据中心、住宅和 SERP 层级。
  7. 多页面 Actor 路由:为列表页和详情页设置带标签的处理器。
  8. 安全结果包装:用可辨识联合 Result<T> 包装远程调用,调用方根据错误分支而非捕获异常。

使用方式

前置条件:安装 apify-client 用于远程调用 Actor,或安装 apify + crawlee 用于构建 Actor,两者可共存于同一项目。在环境中设置 APIFY_TOKEN,通过 process.env.APIFY_TOKEN 读取,切勿硬编码;这是这些模式唯一需要的凭证(Apify 使用个人 API 令牌,而非 OAuth)。推荐使用 TypeScript,所有代码片段均为类型化,可在 ts-node 或编译构建下运行。

使用时可先套用两个骨架(类型化客户端单例、Crawlee 爬虫选择),再按任务查阅参考目录中的对应模式。完整模式目录(模式 3–8 的完整代码)位于 patterns.md,两个端到端示例位于 examples.md。

适用场景

  • 从外部应用安全调用远程 Actor,并读取其数据集而不抛出异常。
  • 构建两级产品爬虫 Actor,组合爬虫选择、路由和数据集写入,形成列表页 → 详情页 → 结构化记录的流程。
  • 需要将失败请求记录为 { url, error, '#isFailed': true } 行而非中断爬取。
  • 需要代理轮换以应对反爬站点。

限制

资料未提供该技能的具体收费、价格、平台支持范围或效果数据。使用前需自行准备 APIFY_TOKEN,且所有模式依赖 Apify 与 Crawlee 生态。