TL;DR
- 一个新闻爬虫发现允许的文章网址,检索它们,提取编辑内容和元数据,并保持版本化的变更记录。
- 从出版商的供稿、部分链接或网站地图开始发现;不要假设一个主页或一个新闻网站地图涵盖了所有档案。
- 分开出版时间、修改时间、抓取时间和事件时间。它们回答不同的新鲜度问题。
- 仅在检查规范 URL、标题、出版商、语言、正文完整性和预期用途的权利后,接受文章。
- Nstdata Crawl 是一个适用于 LLM 的 Web 爬虫 API,能够处理有限的发现、JavaScript 渲染、Markdown 或 HTML 输出、代理路由和任务状态;您的应用程序仍然管理许可证、去重和编辑语义。
什么是新闻爬虫?
新闻爬虫是一个反复发现和获取来自批准出版商的新闻文章的系统,然后将其转化为用于搜索、监控或 AI 检索的记录。与一次性抓取器不同,它必须处理新故事、修改、更新的标题、移动的 URL、撤回的页面和出版计划。其输出是一个维护的语料库,而不是一堆 HTML 文件。
第一个设计决策是访问权限。出版商的 RSS 供稿或网站地图是一种发现机制,而不是自动的完整文本存储、重新分发或用于模型训练的许可证。在保留或下游 AI 使用之前,审查出版商条款和任何联播协议。机器人排除协议定义了爬虫访问指令,但其规则并不是授权系统。一个可辩护的工作流程跟踪适用于每个来源的政策和许可证。
为什么新闻数据需要不同的管道?
新闻数据需要不同的管道,因为时效性和修订历史是记录的一部分。一个故事可以在 09:00 发布,在 09:20 被更正,并在 10:00 被您的系统发现。如果数据库仅存储“时间戳”,下游分析师就无法确定该文章在警报触发时是否是最新的。单独保留 datePublished、dateModified、firstSeenAt 和 fetchedAt。
谷歌的 新闻网站地图指南 表示,出版商应该添加新的文章网址,并仅对最近的文章保留新闻特定的网站地图元数据。这对于发现是有用的,但并不是一个完整的历史档案。谷歌还在其 出版商技术指导 中建议使用不同的、永久的文章 URL 和可见的文章链接。这些都是合并多个允许的发现渠道并在存储之前进行规范化的良好理由。
对于一个 AI 产品,同一个故事可能以文章、联合副本、实时博客条目和后续内容的形式出现。 URL 去重是必要的,但不足够。使用出版商、规范 URL、标题、出版时间和内容指纹来分组版本或相关副本。不要因为标题相似就将更正合并到无关的故事中。
生产新闻爬虫应该如何架构?
生产新闻爬虫应使用源注册、有限发现、获取队列、提取、验证、版本控制和交付。每个阶段都应输出计数,以便操作员能够区分“没有新故事”和“发现中断”。
| 阶段 | 主要决策 | 保留证据 |
|---|---|---|
| 源注册 | 哪些出版商和路径是经过批准的? | 许可证、机器人政策、区域、允许的字段 |
| 发现 | 哪些网址是新的或已改变的? | 供稿或网站地图 URL、发现时间 |
| 调度 | 哪些页面待取回或重新访问? | 优先级、重试预算、先前状态 |
| 获取 | 文章页面是否实际渲染? | HTTP/页面状态、最终 URL、工件、错误 |
| 提取 | 是否存在标题、正文、日期和作者? | 字段来源和解析器版本 |
| 接受 | 是完整的、有许可证的文章而不是预告吗? | 质量检查和拒绝原因 |
| 交付 | 搜索、分析或 RAG 是否应该更新? | 稳定 ID、版本、内容哈希 |
一个示例接受的记录可能是:
{ "publisher": "示例新闻", "canonical_url": "https://news.example.org/technology/story-42", "headline": "示例标题", "language": "zh", "date_published": "2026-11-06T09:00:00Z", "date_modified": "2026-11-06T09:20:00Z", "first_seen_at": "2026-11-06T09:05:00Z", "fetched_at": "2026-11-06T09:25:00Z", "content_hash": "illustrative-hash", "rights_profile": "licensed_for_internal_search", "quality_status": "accepted" }
记录是说明性的,而不是实时数据结果。出版商的文章模式可以帮助提取:Google的文章结构数据指南涵盖了标题、日期、图像和作者。仍然需要将标记与可见页面内容进行比较。一页可能有过时的结构化数据、嵌入的预告或以不同时区呈现的时间戳。对于联播或企业交换,IPTC NewsML-G2 指南提供了更强大的元数据模型,由出版商提供。
您如何决定何时重新访问文章?
根据出版商、年龄、更新信号和商业价值来重新访问文章,而不是按固定间隔轮询每一页。新故事在直播事件期间可能需要更快的检查;较旧的文章可能只在源发出更新通知或下游用户请求确认时需要重新访问。尊重每个源的允许速率和许可条款。
当源支持时,使用条件请求或内容哈希。如果页面发生变化,保留先前版本并记录更改字段。标题更正应更新搜索元数据;正文更正可能需要新的 RAG 块和嵌入。被删除的文章需要删除或墓碑政策,特别是在许可或权利发生变化的情况下。仅附加记录的爬虫将静默提供过时的材料。
新鲜度指标应反映产品。“中位爬取延迟”对于警报很有用,而“基于当前文章版本的引用答案百分比”对于 RAG 重要。测量特定源的延迟,而不是一个隐藏失败出版商的全球平均值。
Nstdata 爬取在新闻工作流中的位置是什么?
Nstdata Crawl可以作为批准的文章 URL 和新闻系统之间的收集和清理层。目前的Crawl API 文档描述了单页面任务、边界站点爬取、JavaScript 渲染、任务轮询以及 Markdown,HTML,原始数据,链接,截图和 PDF 输出。其代理路由内置于工作流中,因此客户端无需配置额外的代理网关。该应用程序仍然负责馈送摄取、编辑身份、来源权利、分类和更新语义。
- 界定发现: 仅在批准的包含和排除路径、页面限制和深度限制内使用出版商部分作为种子。
- 呈现提取: 当文章文本在初始 HTML 中缺失时,升级到浏览器渲染;默认情况下不要呈现每个 URL。
- LLM 准备输出: Markdown 可以在源元数据、归属和权利附加后供授权的 RAG 管道使用。HTML 和原始数据有助于诊断缺失的署名或日期字段。
- 任务诊断: 轮询已完成、待处理和失败的计数,并检查每页的成功。排队请求不是被接受的新闻文章。
- 成本边界: 爬虫根据当前计划按 URL 收费,代理流量可能单独收费。测量每个已接受的新鲜文章的成本。
此说明请求使用运营商控制或已获得许可的出版商域。它显示了记录的网站爬取路径和范围控制;没有对实时出版商进行运行,因为未提供 API 密钥或出版商协议。
curl -X POST "https://api.nstdata.io/api/v1/crawl" \ -H "x-api-key: $NSTDATA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://news.example.org/technology/", "formats": ["markdown", "html"], "maxDepth": 2, "maxPages": 30, "includeUrls": ["*news.example.org/technology/*"], "excludeUrls": ["*news.example.org/account/*"], "ignoreQuery": true, "onlyMainContent": true, "timeout": 60000 }'
读取GET /api/v1/crawl/status/{crawlId}以获取作业进度,读取GET /api/v1/crawl/pages/{crawlId}以获取页面记录。验证返回的文章字段和权利,然后再存储 Markdown。大文件可能会作为参考令牌返回,需要记录的存储读取端点。Crawl 定价页面是当前 URL 和代理计费模型的来源。
新闻团队应该监控哪些失败?
新闻团队应单独监控发现、内容、权利和新鲜度的失败。发现失败包括空的提要、移动的部分 URL、格式错误的网站地图或重复的查询变体。内容失败包括只包含饼干墙的 200 响应、替代正文的预告片、错误语言版本或陈旧的缓存版本。权利失败包括许可证到期或允许保留发生变化的来源。当爬虫运行但遗漏更正时,则会发生新鲜度失败。
在扩展之前定义验收检查:非空的标题和主体、合理的发布日期、预期主机上的规范 URL、语言匹配、允许的权利配置文件,以及基于样本的正文完整性测试。拒绝带有挑战标记或仅包含模板的 Markdown 页面。保留一小组已知文章以捕捉解析器或渲染回归。使重试次数有限,遵守发行商的速率限制,并将反复失败的 URL 发送到审查队列,而不是静默丢弃它们。
什么情况下构建新闻爬虫值得?
当团队有权使用来源且需要监控新鲜度、版本历史和引用检索的产品需求时,构建新闻爬虫是值得的。从一个发行商和一个小的批准部分开始,证明验收规则,然后扩展来源注册。没有权利或质量控制的广泛爬取是一种负担,也是一种糟糕的 AI 数据集。
Nstdata Crawl 可以去除该批准管道中的浏览器、代理和页面格式管道。新闻系统仍然必须决定什么是故事,何时发生变化,可能保留多长时间,以及下游答案如何引用它。有关更广泛的 AI 吸收模式,请参见 Crawl for RAG knowledge bases。
常见问题解答
问:新闻网站地图是否是完整的档案?
不是。新闻网站地图专注于近期文章;使用批准的档案或提要获取历史覆盖。
问:爬虫是否可以存储来自每个公共发行商的完整文本?
不能。公共访问本身并不授予保留、重新分发或在完整文本上进行训练的权利;请检查每个发行商的条款和协议。
问:警报应使用哪个时间戳?
警报应区分出版和修改时间,而不是爬虫首次观察和获取文章的时间。
问:HTTP 200 是否意味着文章可用?
不。200 响应可能包含预告片、挑战、饼干墙或不完整的渲染页面。
问:Nstdata Crawl 停止在哪里?
Nstdata Crawl 收集并转换页面内容,而应用程序定义许可证、去重、版本控制、语义验证和下游交付。





