SuperAPI AI 工具集

crawlee

编程与开发

查看项目

更新于 10-15 21:11

技能介绍

用途:该技能面向 Crawlee 爬虫相关工作,包括选择爬虫类型、路由与链接发现、存储、反封锁、扩展、运行时/Docker/Apify 部署,以及 v3 到 v4 迁移。资料快照(2026-10-09)显示 crawlee@3.18.2 为最新稳定版,crawlee@4.0.0-rc.1 为 rc 标签,v4 标签每日变动(4.0.0-beta.225);回答前应检查 source-map.md 与已安装版本。

主要能力与选型:数据在服务端渲染 HTML 用 CheerioCrawler;JSON/XML/RSS/API 等非 HTML 用 HttpCrawler;需要 window/DOM API 但不用浏览器用 JSDOMCrawler 或 LinkeDOMCrawler;JS 渲染、点击、登录、截图用 PlaywrightCrawler;已有 Puppeteer 代码用 PuppeteerCrawler;混合或未知渲染用 AdaptivePlaywrightCrawler(v3 实验性);自定义传输用 BasicCrawler;强机器人墙可考虑 PlaywrightCrawler 加 Camoufox 与住宅代理或托管解锁服务。

使用方式:Crawlee 由请求队列驱动,crawler.run(urls) 播种队列,处理器调用 enqueueLinks/addRequests,队列为空时结束。开发时用 maxRequestsPerCrawl 作安全上限。使用 requestHandler 与 failedRequestHandler,抛错触发重试,默认 maxRequestRetries: 3。每个爬虫用一个 router 加标签,userData 保持小而带类型。enqueueLinks 默认 strategy: 'same-hostname',需明确策略与 globs。数据经 pushData 写入 Dataset,运行状态放 KeyValueStore/useState。默认存储每次启动清空,可设 CRAWLEE_PURGE_ON_START=false 或使用命名存储。并发交给自动扩展,用 maxConcurrency 与 maxRequestsPerMinute 控制礼貌性。

限制与注意:封锁需在身份层面解决,IP、cookies、TLS/HTTP 指纹与浏览器指纹需一起轮换。HTTP 爬虫中 TLS 指纹重要,v3 默认 got-scraping,可安装 @crawlee/impit-client 并传 httpClient: new ImpitHttpClient({ browser: 'chrome' }),v4 默认 impit。不要在同一仓库固定两个主版本;v4 仅 ESM、需 Node 22.13+ 且重命名许多选项。Bun 在 v3 不受官方支持,v4 加 impit 据报告可用。Docker 不要用 --omit=optional 安装,需匹配 Playwright/Puppeteer 版本与基础镜像标签。应尊重 robots.txt、ToS 与站点速率限制,不绕过认证或付费墙。验证方面建议类型检查、上限 10 的冒烟运行、基于固定 HTML 的选择器检查、确认 enqueueLinks 过滤、重跑确认清空/恢复行为、检查封锁状态与内存并发日志,并报告实际执行的检查与未执行的检查及版本、运行时或法律假设。