TL;DR
- 文档爬取需要保留代码、参数表、标题上下文、语言和版本;仅仅依靠页数不能衡量质量。
- 将网站地图和导航发现结合使用,过滤不相关的路径,并在扩展之前比较静态页面和JavaScript渲染页面的输出。
- 验证Markdown以查找缺失的标题、破损的代码块、不完整的表格、重复的路径、空内容和版本漂移。
- 仅爬取允许的内容。公共爬取API并不授予访问私有文档的权限或绕过网站政策。
介绍:文档是结构化数据,即使它以HTML形式发布
Nstdata Crawl是此工作流程中的收集层;其 产品概述 描述了下游数据管道的页面和站点检索。
文档站点是为浏览页面、版本和代码示例的读者构建的。一个LLM需要相同的关系才能成功提取。如果爬虫返回没有端点的API参数、没有语言标签的代码,或者将旧的v1页面与当前的v2页面并排放置且没有版本元数据,则即使每个URL成功返回,造成的上下文也可能具有误导性。
本指南涵盖文档发现、爬取、Markdown验证和元数据。它并不尝试教授完整的向量搜索系统。有关后续的嵌入阶段,请参阅单独的 网站到Pinecone的操作指南。Nstdata Crawl支持Markdown、HTML、原始数据、链接、PDF和屏幕截图输出;当前的 爬取文档 描述了权衡和任务接口。
什么使文档适合LLM?
有用的文档记录包括完整内容、合理的标题层次结构、完整的代码和表格、稳定的源URL、版本、语言、爬取时间戳和内容哈希。“Markdown转换成功”并不等同于“LLM能够回答预期的问题。”验证下游用例所需的具体信息。
对于API参考页面,保持方法、端点、身份验证详情、参数名称、类型、默认值、响应字段和错误行为在同一本地上下文中。对于指南,保留步骤和警告的顺序。对于变更日志,保留发布日期和状态标签。
文档爬取与一般网络爬取的不同之处
文档通常使用如Docusaurus、Nextra、VitePress或MkDocs等框架,但它们的渲染模式因部署而异。不要假设总是需要JavaScript浏览器。检查所需页面的输出:如果所获取结果中缺少关键文本,则测试浏览器渲染或有记录的等待。有关Docusaurus、VitePress和MkDocs的公共文档描述了它们的发布系统;部署站点的行为仍需直接检查。
步骤1:发现文档URLs
将网站地图作为一个来源,将站点链接作为另一个来源。网站地图可能包括文档导航不再显示的页面,而链接发现可能遗漏仅在网站地图中列出的孤立页面。比较结果的URL集合,并在爬取之前为每个路径分类。
网站地图发现与链接爬取
| 方法 | 适用情况 | 需要检查的盲点 |
|---|---|---|
| 网站地图 | 声明的页面库存和 lastmod 提示 | 过时或省略的条目 |
| 链接发现 | 可从文档导航访问的页面 | 孤立页面或深层链接 |




