TL;DR
- 清洁文章提取需要保留正文、标题、源 URL 和可见警告。
- 文章提取必须保留标题、正文边界、引用和披露。
- 一个看起来干净的结果仍然可以遗漏最后一段或包含相关故事卡片。
- 在运行更广泛的集合之前,比较每个模板的一个代表性文章。
- Nstdata Crawl 处理 JavaScript 渲染和在管理请求中的代理路由;其文档列出了六种输出类别:Markdown、HTML、原始数据、PDF、截图和链接。
什么是文章文本提取?
文章提取将页面的主要故事与菜单、推荐卡片、广告、重复的页脚和无关的小工具分开。一个有用的记录包括标题、正文、URL 及任何实际存在的出版细节。它还应保留引用、列表结构和链接的引用。短语“任何网页”描述输入形状,而不是保证每个网站都可访问,或每种布局都可以自动解析。
Nstdata Crawl 可以将 URL 或一组链接的页面转换为 AI 代理、RAG 索引或数据管道的材料。使用您自己的领域规则和验收检查以获得具体结果:从已知 URL 提取可读的文章正文,同时保留其来源和边界。Nstdata 全站爬虫指南 解释了站点级选项。
对于这里涵盖的更窄任务,Nstdata URL 到 Markdown 指南 为选择第一个代表页面提供了有用的上下文。
在开始之前需要什么?
选择一篇您可能处理的文章,最好有标题、副标题、链接和结束段落。写下预期的标题、第一句和最后一句,以及您必须保留的任何披露。决定您的后续产品是否需要完整文本、短摘录或仅摘要。如果您使用管理路由,请获得 Nstdata API 密钥并将其存储在服务器端。
Crawl API 文档 使用 https://api.nstdata.io、x-api-key 头和 Content-Type: application/json。在运行方法之前准备这些字段:
| 字段 | 提供什么 |
|---|---|
url | 一条允许的 HTTPS 页面或站点入口 URL |
formats | 请求的输出,如 ["markdown"] 或 ["html","screenshot"] |
onlyMainContent | 只有当正文选择符合任务时才为 true |
maxDepth, maxPages | 站点范围内作业的显式边界 |
includeUrls, excludeUrls | 保持发现范围内的 URL 模式 |
timeout | 任务超时时间(毫秒),当默认值不合适时 |
标准管理请求没有单独的代理 Host、Port、Username、Password 或 Protocol 字段。在运行大型作业之前,请检查 当前爬虫定价页面 的帐户限制和费用。
审查目标的访问政策和范围。机器人排除协议 定义爬虫如何读取机器人规则;它不授予内容使用权。将凭据和私人数据排除在示例和诊断日志之外。
Nstdata Markdown 清理指南 是在您自动化工作流程之前定义验收检查的配套指南。
文章提取 API 如何找到主体?
文章提取器在检索和渲染页面后识别主体,然后移除周围的导航和推荐。Nstdata Crawl 能渲染 JavaScript 内容,并提供 onlyMainContent 来减少样板代码。它返回 Markdown 和页面元数据,并提供 HTML 和截图以供调查。文章提取仍然需要页面级验收检查,因为重要的披露或最后一段可能位于所选主要区域之外。管理代理路由内置于服务中;标准请求没有单独的代理 Host、Port、Username 或 Password 字段。
对于已知的 URL,单页抓取只会返回一个结果。对于站点部分,POST /api/v1/crawl 会在提供的深度、页面数量和 URL 规则内递归发现链接页面。文档 列出了 Markdown、HTML、原始数据、PDF、截图和链接作为六个输出类别;产品页面还提供 JSON,但特定领域的 JSON 架构仍然需要显式字段映射。保持每个接受的记录与其源 URL 和返回的元数据相关联。
在扩展之前,测试一个具有代表性的 JavaScript 密集型页面。渲染状态可能依赖于时间、地区、同意或已登录的会话。比较返回的 HTML 或截图与预期页面状态;如果它们不同,仅调整文档中记录的渲染和等待控制。
如何从网页中提取干净的文章文本?
使用代表性的文章定义主体边界,然后选择受管控的单页检索或用于已在您控制下的 HTML 的本地解析器。在扩展之前验证每个模板。
方法 1:在 Crawl Playground 中检查文章
最佳做法是决定自动主内容选择是否准确。
步骤 1:打开示例文章
登录并打开 Dashboard → Crawl Playground。粘贴授权的文章 URL。[截图:文章 URL 和输出控制。]
步骤 2:请求文本和证据
选择 Markdown 和 HTML,启用主内容选项,然后运行抓取。对于客户端渲染的新闻网站,请使用当前界面中显示的文档准备控制。
步骤 3:比较边界
检查提取的标题、第一段和最后一段、标题、引用和披露是否与源匹配。如果缺少关键部分,请使用 HTML 检查选择,然后再处理更多文章。
方法 2:调用文章提取 API 路由
最佳做法是在应用程序或代理工作流程中针对已知 URL。
步骤 1:保持 API 密钥私密
将 NSTDATA_API_TOKEN 存储在您的服务器环境中,并作为 x-api-key 发送。切勿通过浏览器 JavaScript 发送它。
步骤 2:提交文章 URL
使用下面带有 Markdown 和 onlyMainContent 的文档单页快速启动请求。文档在其他抓取路由上显示冲突标签,因此在 Playground 中确认当前生成的路由。
从您的 Nstdata 账户在您的 shell 中设置 NSTDATA_API_TOKEN,然后运行文档中的快速启动请求。公共文档不一致地标记其他同步和异步路由;在生产使用之前,请比较您账户的 Playground 生成请求。
curl --output crawl-response.json --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/article","formats":["markdown","html"],"onlyMainContent":true}'
响应将保存到 crawl-response.json。在使用任何返回的内容之前,请检查嵌套的 data.success、data.status 和 data.data.metadata.statusCode 字段。
步骤 3:验证结果
检查嵌套的成功和页面状态、标题及 Markdown。拒绝只包含导航、同意墙或部分故事的结果。保存 URL 和接受文本的检索时间。
方法 3:对您已经持有的 HTML 使用本地提取
最佳做法是在不需要受管控抓取时使用可信、已渲染的 HTML。
步骤 1:选择本地解析器
Mozilla Readability 是一个用于 DOM 输入的成熟文章内容解析器;如果您的应用程序使用 JavaScript,请从其官方软件包源安装它。
步骤 2:在捕获的 DOM 上运行
提供实际渲染的文档,而不仅仅是最初的静态外壳。将原始 HTML 与提取结果一起保存以便调试。
步骤 3:检查模板覆盖
测试几种文章布局,比较开头、结尾、标题和链接。本地提取本身并不能解决访问、JavaScript 加载或代理路由问题。
如何验证输出?
仅在其标题、第一段、最后一段和至少一个独特短语与源匹配时接受文章。字符计数可以捕捉到明显的空结果,但无法证明披露是否存活。Mozilla Readability 仓库 记录了一个本地解析器选项,适用于 HTML 已经可用的页面。Nstdata 文章转 Markdown 指南 解释了如何支持下游人工智能使用的清理文本。
Nstdata 网站摘要指南 将此页面级检查与下游人工智能或数据工作流程相连接。
记录源 URL、提交时间、请求的格式、非保密选项、任务 ID(如有)、返回页面状态,以及每条记录通过或未通过审核的原因。检查内容以及 API 信封。如果响应包含 markdownRef、htmlRef、rawDataRef、screenshotRef 或 pdfRef,请使用 GET /api/v1/crawl/storage/read?st={ref} 检索该令牌。
对此工作流程,请在实施下游解析器或格式特定的接受检查时咨询 Mozilla Readability。
在将提取的文本传递给代理时,将页面指示视为不可信的源材料。关于提示注入的 OWASP 指导 解释了风险。保留源 URL 以便检查 AI 输出。
为什么文章提取可能会遗漏内容?
文章文本提取可能会失败,因为文章主体后加载或选择过早停止。使用症状表来识别失败的层,然后再更改限制或重试。
| 症状 | 可能原因 | 下一步行动 |
|---|---|---|
| 仅出现标题 | 文章主体后加载或选择过早停止。 | 检查呈现的 HTML 并等待主体元素。 |
| 推荐作为主体文本出现 | 页面模板在选定区域包括相邻卡片。 | 审查 HTML 边界并添加特定模板的过滤器。 |
| 披露或最后一段缺失 | 主内容选择过于激进。 | 比较页面结尾,手动保留所需部分或通过修订选择器。 |
Nstdata 的文档列出了任务级错误,例如 access_denied、timeout、parse_error 和 internal_error。外部 HTTP 200 仍可能伴随失败的任务。在响应中检查 success、status、errorCode 和 errorMessage(如有)。仅对可能访问的网站上的瞬时故障重试。
哪种方法最合适?
选择 Playground 进行边界审查,管理 API 用于已知文章 URL,或在您已经拥有 HTML 时使用本地解析器。仅在测试其行为在每个文章模板上的情况下使用本地解析器。Nstdata 网站爬虫概述 提供了有关网站路径的更多详细信息。
首次成功运行后您该怎么做?
保存审核通过的配置和一个源支持的输出记录,然后在一小组不同的页面模板上重复。仅在这些记录通过相同的接受检查后增加范围。
常见问题:您还需要知道什么?
问:文章提取器能处理每个网页吗?
不。它最适用于类似文章的布局;访问限制、动态加载和不寻常的模板需要检查或自定义规则。
问:我应该保留原始 HTML 吗?
在保留政策允许的情况下保留它,并在需要调查省略或引用时。
问:文章标题足够证明成功吗?
不。验证开头、结尾以及任何必需的备注与源的一致性。
问:文章文本提取是否要求与 Nstdata Crawl 进行单独的代理配置?
标准的管理爬虫请求不需要单独的代理主机、端口、用户名、密码或协议字段。请确认您账户中任何可选自定义代理选择和相关使用费用。
问:HTTP 200 是否证明文章文本提取结果可以使用?
不。在将其用于 AI 或数据工作流程之前,检查嵌套的任务结果、页面状态、预期字段和主体忠诚度。





