Nstproxy 现已升级为 Nstdata。了解此次变化。
周一至周五 09:00 - 18:00(UTC+08:00) 公司地址
19H MAXGRAND PLAZA NO.3 TAI YAU STREET SAN PO KONG, KOWLOON HONG KONG ©2026 NST LABS TECH LTD. 保留所有权利。
网站到 JSON 提取:模式和验证指南
Kai Watanabe Scraping Infrastructure Evangelist
将网站转换为 JSON:大规模提取结构化数据 TL;DR
网站到 JSON 的提取需要字段合同和源支持的验证。
Nstdata Crawl 提供发现、JavaScript 渲染和多种输出格式,当你需要将验证过的页面内容转换为类型化的 JSON 记录,而不是将 API 响应视为完成的业务模式时。
网站到 JSON 的标准 API 请求使用 x-api-key 而不是单独配置的代理主机、端口、用户名或密码。
对于此任务,工作结果是将验证过的页面内容转换为类型化的 JSON 记录,而不是将 API 响应视为完成的业务模式。
验证每个网站到 JSON 的结果,因为接受的 API 请求仍然可能包含失败或不完整的页面内容。
网站到 JSON 提取是什么意思?
网站到 JSON 提取有两个不同的含义:API 响应是 JSON,应用程序可能需要特定于域的 JSON 对象,如产品、文章或位置。这些并不等同。Nstdata Crawl 提供页面数据和元数据;你的提取器必须定义字段、类型、空值规则以及用例的验证。用 JSON 包裹的原始页面并不是结构化提取。
对于网站到 JSON,Nstdata Crawl 提供检索和转换作为 AI 代理、RAG 和数据管道的网站到数据层。保留你的应用程序中将验证过的页面内容转换为类型化的 JSON 记录所需的字段规则和验证,而不是将 API 响应视为完成的业务模式。Nstdata 全站爬虫指南 解释了如何从页面扩展到有界集合。
对于这里讨论的更窄任务,Nstdata 网站到 JSON 指南 为选择第一个代表页面提供了有用的背景。
开始之前你需要什么?
在收集页面之前编写你的架构。对于文章记录,选择 source_url、title、body 和 fetched_at;对于产品记录,单独识别货币、变体和可用性。决定缺失字段是否变为 null、被拒绝的记录或审查项。保留一个已授权的代表页面,具有已知的期望值以供测试。使用 Nstdata 账户和服务器端 API 密钥进行管理收购。
对于网站到 JSON,使用 https://api.nstdata.io 进行文档化的 REST 示例。当前的 Crawl API 文档 显示 x-api-key 和 Content-Type: application/json。站点爬虫需要 maxDepth、maxPages 和 URL 规则;已知页面使用单页面路线。在缩放将验证过的页面内容转换为类型化的 JSON 记录之前,检查 当前爬虫定价页面 的限制和任何单独计量的代理流量,而不是将 API 响应视为完成的业务模式。
在网站到 JSON 之前,审查目标的访问政策和范围。机器人排除协议 定义了爬虫如何读取机器人规则;它不授予内容使用权。将与此工作流相关的凭证和私有数据排除在示例和诊断日志之外。
网站到 JSON 提取是如何工作的? Crawl 检索页面或有界网站,必要时处理 JavaScript 渲染,并返回包括 Markdown、HTML、链接和视觉艺术品等格式。其产品页面还宣传 JSON 输出。可见的 API 示例并未指定一个通用的 JSON 提取架构,因此本教程使用了可靠的路径:获取内容,应用声明的字段合同,并验证生成的 JSON。内置代理路由是管理爬虫的一部分,而在标准请求中没有单独的代理主机和端口字段。
网站到 JSON 的管道分为 发现 、检索 、转换 和 接受 。发现找到候选 URL;检索获取页面状态;转换生成格式;接受决定记录是否足够正确,以便将验证过的页面内容转换为类型化的 JSON 记录,而不是将 API 响应视为完成的业务模式。LLM 无法恢复收购步骤丢失的内容。保持已接受记录附带的源 URL 和返回的元数据。
对于网站到 JSON 工作流中的动态页面,测试一个代表页面,而不是假设浏览器渲染与每个访客看到的内容是相同的。状态可能取决于时间、地理位置、同意或已登录会话。Nstdata 提供浏览器渲染和代理路由,但你的应用程序必须确定返回的页面是否是你打算处理的页面。
构建源支持的 JSON 记录
使用 Nstdata Crawl 将验证过的页面内容转化为类型化 JSON 记录,而不是将 API 响应视为完成的业务架构。
探索 Crawl
https://example.com/article
爬取
如何从网站提取结构化 JSON? 为了将验证过的页面内容转化为类型化 JSON 记录,而不是将 API 响应视为完成的业务架构,选择匹配您的输入和规模的路径。Playground 对于检查很有用,API 处理可重复调用,有限的网站作业处理链接页面。每条路径的结果形状不同,因此在生产中使用之前请先验证路径。
方法 1:使用 Playground 检查页面表示
Step 1: 打开代表页面 前往 Dashboard → Crawl Playground 并输入一个授权 URL。 [截图:URL 和格式控件。]
Step 2: 比较输出 请求 Markdown 和 HTML,并检查页面元数据。确定哪个表示法保留了您所需的字段;可见文本可能会省略机器可读标签。
Step 3: 编写字段映射 对于每个 JSON 字段,命名源元素、规范化规则和失败行为。记录值是从可见文本、HTML 还是页面元数据中提取的。
方法 2:从 Crawl API 响应构建 JSON 对象
Step 1: 提交一个 URL 使用 API 密钥调用文档化的快速启动抓取路由并请求 Markdown。下面的 API 调用与文档一致,并需要您的凭证才能运行。
Step 2: 验证信封 检查嵌套的 success、status、data 和 metadata.statusCode,然后如果主体单独存储,则检索返回的 markdownRef。
此与文档一致的网站到 json 请求需要您自己的 API 密钥。在部署之前检查当前 Playground 生成的请求以获取您的帐户。
curl --request POST "https://api.nstdata.io/api/v1/crawl/scrape/submit-sync" \
--header "x-api-key: ${NSTDATA_API_TOKEN} " \
--header "Content-Type: application/json" \
--data '{"url":"https://example.com/","formats":["markdown","html"],"onlyMainContent":true}'
Step 3: 映射和序列化 构建您自己的 JSON 对象,包含 source_url、title 和 markdown。拒绝空白文本和重复 URLs;不要仅仅因为它有一个键名就声称一个推断字段是经过验证的。
方法 3:将一个有限的网站处理成多个 JSON 记录
Step 1: 确定边界 选择 maxDepth、maxPages,并包含/排除您打算处理的部分的模式。
Step 2: 收集记录 提交 POST /api/v1/crawl,轮询返回的 Job ID,并检索页面结果。遵循 nextCursor,而不是假定第一页就是整个数据集。
Step 3: 进行规模验证 每页应用相同的字段合约,记录被拒绝的项目,并从不同模板中采样被接受的项目。在规范化 JSON 旁边存储原始证据,以便日后进行修正。
如何验证输出? 一个合理的 JSON 记录具有稳定的源 URL、明确的字段名称、已知的类型和区分缺失数据与提取失败的方法。JSON 标准 定义了序列化格式;它无法确定抓取的价格或标题是否正确。检查值与源页面的一致性,并保留原始输出以供审计。Nstdata 网站到 JSON 指南 进一步阐述了这种区别。
对于网站到 JSON,记录请求 URL、提交时间、选择的格式、非机密选项、任务 ID(如有)、返回状态和每个记录被接受或拒绝的原因。检查主体以及信封。Nstdata 文档 markdownRef、htmlRef、rawDataRef、screenshotRef 和 pdfRef 以用于大型文档;使用存储端点读取返回的令牌,而不是自己构建一个。
对于此工作流程,请在实现下游解析器或格式特定的接受检查时参考 RFC 8259 。
为网站到 JSON 获取的网页内容在传递给代理时是不可被信任的数据。OWASP 关于提示注入的指导 解释了为什么嵌入在检索页面中的指令不应对代理的工具获得权威性。保持工具权限狭窄,并保留源引用以支持模型声明。
为什么网站到 JSON 提取可能失败? 网站到 JSON 提取的失败通常在任务状态、页面状态或内容质量中可见。逐层诊断问题,在提高限制或重试之前。
| JSON 解析但值错误 | 解析器接受了语法而未验证源含义。 | 比较字段与页面并执行领域规则。 |
| 不同页面模板产生空白 | 一个选择器或提取规则未覆盖每个模板。 | 对模板进行分类并维护单独的字段映射。 |
| 大结果缺少内联内容 | 抓取可能返回内容引用。 | 通过存储端点读取返回的 *Ref。 |
为了将网站转换为 JSON,Nstdata 的文档列出了任务级错误,例如 access_denied、timeout、parse_error 和 internal_error。外部 HTTP 200 仍然可以伴随失败的任务。在可以使用时检查主体中的 success、status、errorCode 和 errorMessage。仅对您被允许访问的网站上的瞬态故障进行重试。
哪种方法最合适? 为了将验证过的页面内容转换为类型化 JSON 记录,而不是将 API 响应视为完成的业务架构,请从 Playground 中的一个代表性页面开始,然后仅自动化通过验证的设置。当输入是网站部分时使用网站发现;当 URL 已知时使用单页面调用。Nstdata Crawl 是一个采集和转换层,而不是您应用程序字段规则、质量保证、存储或刷新计划的替代品。当您扩大范围时,Nstdata 网站爬取概述 很有用。对于需要跨多个代理源进行路由的团队,请单独评估 Nstdata Proxy Manager 。
准备好测试工作流程了吗? 从一个小的授权样本开始,将输出与源进行比较,并在扩展之前保存接受的记录。
常见问题解答 API 返回一个 JSON 信封,产品页面宣传 JSON 输出。在依赖它之前,请在当前 Playground 中确认任何请求的提取架构。
LLM 可以提出值,但您的应用程序应定义类型、必填字段和基于来源的验证。
根据您的字段合同记录显式 null,拒绝记录或将其发送进行审核;切勿默默填充。
问:网站到 JSON 的提取是否需要与 Nstdata Crawl 单独配置代理?
标准管理爬取请求不需要单独的代理主机、端口、用户名、密码或协议字段。在您的帐户中确认任何可选自定义代理选择和相关使用费用。
问:HTTP 200 是否证明网站到 JSON 的提取结果是可用的?
不。使用之前请检查嵌套任务结果、页面状态、预期字段和主体的准确性。
支持 JavaScript 渲染,成功率达 99.8%
将任意网站转换为 Markdown、HTML、JSON、链接、PDF 等格式,无需管理爬取基础设施。 开始免费爬取 →