Agent Skills
返回列表
💻

工程化网页爬虫(Crawlee)

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/python-node-web-crawler。

技能介绍

你要解决的问题

写爬虫的人大多经历过这种失控:请求偶尔成功,改个页面结构就全挂;抓了大量结果却躺在本地文本里,没法喂给下游;封了 IP 才发现代码根本没做限速。这类「一次性脚本」的问题在于——它把异常当例外,而不是系统的一部分。缺少重试、去重、持久化和结构化,任何一处波动都会让整条链路崩掉。

这个技能如何工作

它把采集流程拆成可工程化的组件。Router 负责按 URL 模式分发处理函数,让你对不同页面用不同策略而不是一个函数硬扛所有情况。请求队列接管去重、自动重试和限速,把「抓不到」变成可观测的调度问题而不是半夜报警。存储层使用 Dataset 保存结构化结果、Key-Value 存状态、RequestQueue 持久化待抓队列,配合断点可恢复机制,重启后不用从头再来。遇到依赖 JS 渲染的页面,可切换 Puppeteer/Playwright 的浏览器模式,避免抓到空壳。

反封禁基线不是黑魔法,而是一组可执行的约束:控制并发与间隔、轮换 UA 避免单一指纹、必要时使用代理分布出口,并且始终尊重目标站点的 robots 协议。你可以按下面的清单做自检:

  • 失败请求是否自动重试,而不是靠人去点重跑?
  • 落库结果是结构化的,还是散落在一堆纯文本里?
  • 任务中断后能否从队列恢复,而不是从零开始?
  • 对 JS 渲染页面,是否用浏览器模式验证过,而不是假设它一定能出内容?

适用边界与注意点

这套方法适合需要长期运行、有明确下游消费场景的采集项目。如果你的需求只是临时确认一个页面有没有更新,上这套会有点重。常见的踩坑包括:不设限速导致 IP 被封并拖垮对方服务器;selectors 写死后页面一改就崩;忽略渲染时机导致抓到空壳页面。合规是底线——AI 输出以官方文档为准,采集行为必须遵守目标网站的 robots 与服务条款,避免侵犯版权或发起超负荷请求,涉及敏感数据时需要依规处理。

使用场景

  • 为RAG系统批量采集网页内容,需要保证数据结构化存储并支持断点续抓
  • 监控竞品页面更新,用Crawlee编写定时采集任务并自动处理反爬策略
  • 从多个JS渲染页面抓取数据,需要使用无头浏览器模式并处理选择器变化
  • Node.js/Python项目需要选型网页采集框架,要求支持队列持久化和自动重试

适合人员

  • 后端工程师,需要为RAG项目搭建稳定网页采集管道,处理重试与限速
  • 数据工程师,要把多个动态渲染站点的结构化数据入库并支持断点恢复
  • 技术负责人,在选型Node.js或Python爬虫框架时评估Crawlee的工程化能力
  • 独立开发者,想从脆弱的一次性脚本升级为可维护的采集系统