智能网页抓取与内容理解器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f12a44b7/self-dev-web-scraper。
技能介绍
面向工程师的抓取方案
从一个URL列表提取结构化数据,远不止调用requests.get()。工程师常面临三个核心问题:站点使用JavaScript动态加载内容、嵌入了复杂的反爬虫机制、以及从杂乱的HTML中精准提取所需实体的低效。传统“一刀切”的脚本往往在初期就失败,或需要大量手工维护选择器。
本技能提供了一个面向生产环境的多策略抓取方案。它不是一个简单的爬虫库,而是一个决策与执行框架,旨在以最低成本、最高成功率获取目标数据。
分阶段管线与关键设计
技能的核心是一个5阶段级联管线,遵循“从轻量到重量”的决策逻辑:
- 新闻/文章检测:首先通过URL模式、Schema.org标记和内容启发式评分,判断目标页面是否为主要内容页面,决定是否值得深入抓取。
- 轻量级下载:使用
requests进行基础HTTP请求,成功则进入下一阶段;失败或检测到需要渲染时,自动升级。 - 鲁棒解析:利用
BeautifulSoup或trafilatura进行HTML清理和主要内容提取,将原始HTML转换为干净的纯文本。 - 动态渲染:当轻量下载失败或内容加载依赖JavaScript时,启用
Playwright进行无头浏览器渲染,确保能获取完整DOM。 - LLM实体提取(可选):最后,在干净文本上(而非原始HTML)使用大语言模型,根据预定义的YAML配置,提取指定的实体信息(如人物、观点、摘要)。
关键设计包括:
- 强制规划协议:任何执行前必须完成对目标、环境、风险的全面评估,避免盲目抓取导致的IP封禁或资源浪费。
- 声明式配置:使用YAML文件定义选择器和提取规则,便于维护和适配站点布局变更。
- 安全与合规:严格遵守速率限制(至少0.5s间隔),绝不直接读取或修改
.env等凭证文件,API密钥仅通过os.environ.get()在生成的脚本中使用。
注意事项与适用边界
此技能专注于公开网络数据的合规提取,不支持绕过付费墙或未经授权的认证访问。其效能依赖于运行环境的正确配置(如Playwright浏览器安装)。生成的是可复现的Python脚本与配置,而非托管服务,用户需自行管理运行环境与输出数据。
该方案特别适合需要从多个异构网站批量提取结构化、标准化信息的场景,例如市场研究、竞品监控或学术资料收集。
使用场景
- 市场研究员需要每周从多个竞品官网和科技媒体抓取最新产品发布页,提取功能、定价和关键描述,用于竞品分析报告。
- 内容运营负责从行业垂直网站批量抓取深度文章正文,清理广告和导航栏后,生成干净文本供内部团队做内容趋势分析。
- 学术研究助理需要从数十个在线学术资源页面自动检测并提取文章元数据(标题、作者、摘要、引用),用于构建研究数据库。
- 技术文档工程师需定期监控多个第三方开发者网站,抓取API文档的更新说明,并自动识别和提取接口变更的参数和示例。
适合人员
- 竞品情报分析师:需要定期、自动化地监控多个竞品网站的产品和博客页面,提取结构化信息,但希望避免手动浏览或为每个站点单独编写爬虫。
- 学术研究人员:需要从大量结构各异的学术网站或开放数据库页面收集最新论文摘要和引用信息,但面临站点反爬虫机制和动态内容加载的挑战。
- 内容策略团队负责人:需要批量抓取行业媒体和博客的深度报告或分析文章,将其转化为结构化知识库,但各站点HTML结构差异大,难以统一处理。
- 开发者关系工程师:需要快速整合来自不同技术博客、论坛和文档站点的工具发布与讨论信息,以追踪技术趋势,但部分站点内容依赖JavaScript动态加载。