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. 保留所有权利。Kai WatanabeScraping Infrastructure Evangelist
如何将任何网站转换为Markdown(API和教程)
TL;DR
- 将网站转换为Markdown始于一个有限的URL集和一个保真度检查。
- 单页抓取转换一个已知的URL;
POST /api/v1/crawl在范围是站点部分时发现链接页面。
- 在存储Markdown以供RAG之前,比较标题、链接、代码和表格与渲染的源内容。
- 大型Markdown结果可以作为
markdownRef返回;通过存储端点检索该令牌。
- Nstdata Crawl处理JavaScript渲染和管理请求内的代理路由;其文档列出了六个输出类别:Markdown、HTML、原始数据、PDF、截图和链接。
什么是网站到Markdown的工作流程?
URL到Markdown的工作流程检索页面,选择有用的内容,并保留人们和模型可以检查的文本中的标题、链接、列表和代码。仅应用于下载HTML的转换器无法恢复后续由JavaScript加载的内容。从一个具有代表性的URL开始,定义在处理整个站点之前必须存活的内容。
Nstdata Crawl可以将一个URL或有限的链接页面集转化为AI代理、RAG索引或数据管道的材料。使用您自己的字段规则和接受检查以获得特定结果:将已知公共页面转换为忠实的Markdown以供搜索、RAG或代理使用。Nstdata全站抓取指南解释了站点级选项。
对于这里涵盖的较窄任务,Nstdata URL到Markdown概述为选择第一个代表性页面提供了有用的背景。
免费试用Nstdata →
开始之前您需要什么?
选择一个包含标题、列表、内联链接的授权页面,如果相关,还需要一个表格或代码块。记录必须出现的标题和两个短语。保存源URL和输出,以便稍后的答案可以引用它。将API密钥存储为NSTDATA_API_TOKEN;绝不要将其放置在客户端应用程序或截图中。
Crawl API文档使用https://api.nstdata.io、x-api-key头和Content-Type: application/json。在运行方法之前准备这些字段:
formats | 请求的输出,例如["markdown"]或["html","screenshot"] |
onlyMainContent | true仅在主内容选择满足任务时 |
maxDepth, maxPages | 针对全站工作明确的范围 |
includeUrls, excludeUrls | 保持发现范围内的URL模式 |
timeout | 当默认值不合适时,以毫秒为单位的任务超时 |
标准管理请求没有单独的代理Host、Port、Username、Password或Protocol字段。在运行大型任务之前,请查看当前抓取定价页面以了解帐户限制和费用。
审查目标的访问政策和范围。机器人排除协议定义了爬虫如何读取机器人规则;它并不授予内容使用权。将凭据和私人数据排除在示例和诊断日志之外。
网站到Markdown的转换如何工作?
Nstdata Crawl检索并渲染一个URL,应用内容提取,并返回带有页面元数据的Markdown。API还可以在Markdown需要调查时返回HTML、链接、截图和PDF。内置的代理路由意味着默认请求需要API密钥和目标URL,而不是单独的代理Host、Port、Username或Password。站点级工作可以在任务超出一个URL时发现链接页面。
对于已知的URL,单页抓取检索一个结果。对于站点部分,POST /api/v1/crawl在提供的深度、页面计数和URL规则内递归发现链接页面。文档将Markdown、HTML、原始数据、PDF、截图和链接列为六个输出类别;产品页面也宣传JSON,但特定领域的JSON模式仍然需要明确的字段映射。将每个接受的记录与其源URL及返回的元数据相关联。
测试一个代表性的JavaScript-heavy网页,然后再进行扩展。渲染状态可能依赖于时间、区域、同意或已登录会话。比较返回的HTML或截图与预期的页面状态;如果它们不同,仅调整记录在案的渲染和等待控件。
如何将网站转换为Markdown?
首先对一个页面进行视觉检查,使用同步API进行可重复的URL转换,或提交一个有界的网站爬取以获取链接文档。每条路径的规模和结果形状不同。
方法1:使用爬取游乐场进行视觉检查
步骤 1:打开页面测试
登录并打开 Dashboard → Crawl Playground。选择单页爬取并输入允许的URL。[截图:游乐场URL字段和单页模式。]
步骤 2:选择输出
选择Markdown,并在文章正文比导航更重要时启用主内容选项。如果目标是动态的,请使用当前界面中显示的渲染或等待控件。[截图:Markdown和内容控件。]
步骤 3:检查保真度
运行爬取并将结果与实时页面进行比较。检查标题、开头和结尾部分、代码围栏、表格和链接目的地。如果缺少警告或表格,即使响应很短也可能是错误的。
方法2:调用单页爬取API
步骤 1:准备凭证
将爬取API密钥存储在服务器端秘密中。文档中的头部是 x-api-key;密钥不是代理密码。
步骤 2:提交URL
使用下面的快速启动请求。当前文档对其他同步和异步爬取路径的标签存在冲突,因此在部署前将此路径与游乐场生成的请求进行比较。
从您的Nstdata帐户在您的shell中设置 NSTDATA_API_TOKEN,然后运行文档中的快速启动请求。公共文档对一些其他的同步和异步路径标签不一致;在生产使用前,与您帐户的游乐场生成的请求进行比较。
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/","formats":["markdown"],"onlyMainContent":true}'
响应保存到 crawl-response.json 中。在使用任何返回的内容之前,请检查嵌套的 data.success、data.status 和 data.data.metadata.statusCode 字段。
步骤 3:接受结果
检查嵌套的 success、status、data 和 metadata.statusCode 值。仅在存在预期标题和有意义的正文文本时接受Markdown;当API返回引用时,存储 markdownRef 并通过文档存储路径获取它。
方法3:转换网站的有界部分
步骤 1:定义部分
选择一个开始URL,并设置 maxDepth、maxPages,以及包含/排除URL模式。排除搜索、帐户、购物车和查询生成的路径,除非它们属于您的语料库。
步骤 2:提交网站作业
使用文档中的 POST /api/v1/crawl 路径,设置 formats: ["markdown"],然后保存返回的爬取ID。这是网站发现路径;单页爬取不会遍历整个网站。
对于网站作业,替换示例主机和路径为您批准的范围,然后提交有界请求:
curl --output crawl-submit.json --request POST "https://api.nstdata.io/api/v1/crawl" \
--header "x-api-key: ${NSTDATA_API_TOKEN}" \
--header "Content-Type: application/json" \
--data '{"url":"https://example.com/docs/","formats":["markdown"],"maxDepth":2,"maxPages":10,"includeUrls":["*example.com/docs/*"],"excludeUrls":["*example.com/admin/*"],"ignoreQuery":true}'
从 crawl-submit.json 中复制 data.id 作为您的爬取ID。
步骤 3:审核每个页面
查询状态,检索页面记录,跟随分页,拒绝失败或内容稀薄的页面。去重标准化的URL,并在每个Markdown文档旁保留原始URL。
curl --header "x-api-key: ${NSTDATA_API_TOKEN}" "https://api.nstdata.io/api/v1/crawl/status/<crawl-id>"
curl --header "x-api-key: ${NSTDATA_API_TOKEN}" "https://api.nstdata.io/api/v1/crawl/pages/<crawl-id>"
如果页面响应包含 nextCursor,请使用您当前API响应或SDK显示的分页控件跟随它;公共页面没有记录游标查询参数,因此不要自己发明一个。
方法4:使用Pandoc本地转换静态HTML
最适合您已经拥有允许的静态HTML文件,并且不需要网站发现或JavaScript渲染时。
步骤 1:保存静态页面
下载授权页面为 page.html,使用浏览器的 另存为页面 命令或经过批准的 HTTP 客户端。检查保存的文件是否包含文章主体;静态下载可能会遗漏通过 JavaScript 加载的文本。
第 2 步:转换保存的 HTML
pandoc -f html -t gfm page.html -o page.md
第 3 步:比较 Markdown
打开 page.md 并比较标题、链接、表格和代码与源文件的内容。这种本地方法没有管理渲染、代理路由或递归站点发现;当需要这些功能时,请使用 Crawl。
如何验证输出?
一个可用的记录包含源 URL、标题、状态代码和保留重要结构的 Markdown。Markdown 是文本表示,而不是语义忠实的证明:复杂的表格、图表和客户端小部件可能需要 HTML 或截图作为补充。 Nstdata Markdown 管道指南 解释了在保存转换页面时如何保留来源。
记录源 URL、提交时间、请求格式、非秘密选项、任务 ID(如有)、返回的页面状态,以及每个记录通过或未通过审查的原因。检查内容以及 API 封装。如果响应包含 markdownRef、htmlRef、rawDataRef、screenshotRef 或 pdfRef,请使用 GET /api/v1/crawl/storage/read?st={ref} 获取该令牌。
Markdown 语法并不能保证每个渲染器以相同的方式处理表格和扩展;请将您的下游解析器与 CommonMark 规范 及您所依赖的任何扩展进行测试。
为什么网站到 Markdown 的转换可能会失败?
网站到 Markdown 的转换可能会失败,因为页面主体可能在初始文档后加载,或者主内容选择可能将其排除。使用症状表来识别失败的层,然后再改变限制或重试。
| 症状 | 可能原因 | 下一步行动 |
|---|
| 空的 Markdown | 页面主体可能在初始文档后加载,或者主内容选择可能将其排除。 | 检查 HTML 或截图并配置记录的等待时间。 |
| 破损的相对链接 | 转换器或后续存储层可能未保留绝对目标。 | 在索引之前解决并测试源链接。 |
| 仅返回一个页面 | 单页面端点无法发现子页面。 | 切换到有限制的网站抓取。 |
Nstdata 的文档列出了任务级错误,例如 access_denied、timeout、parse_error 和 internal_error。外部 HTTP 200 仍然可以伴随失败的任务。检查响应中(如存在)的 success、status、errorCode 和 errorMessage。仅在您可以访问的网站上重试暂时性故障。
哪种方法最合适?
选择 Playground 进行可视的一页比较,对已知 URL 使用同步抓取 API,或在必须跟踪链接时选择有限制的网站作业。对已保存的静态 HTML 使用本地 Pandoc;将每个接受的 Markdown 文档与其源进行比较。Nstdata 网站抓取概述 提供了有关网站路径的更多细节。
第一次成功运行后您该怎么办?
保存经过批准的配置和一个来源支持的输出记录,然后对一小组不同的页面模板重复此过程。仅在这些记录通过相同的接受检查后才增加范围。
常见问题:您还应知道什么?
有限制的网站抓取可以发现和处理多个链接页面。设置页面和深度限制,然后检查返回的记录。
问:对于 LLM,Markdown 总是比 HTML 更好吗?
Markdown 通常更易于阅读和处理,但在表格结构或视觉上下文重要时,HTML 或截图更安全。
问:我需要代理凭证吗?
标准的托管爬取请求需要爬取 API 密钥,而不是单独的代理主机或密码。
问:网站到 Markdown 的转换是否需要与 Nstdata Crawl 单独配置代理?
标准的托管爬取请求不需要单独的代理主机、端口、用户名、密码或协议字段。在您的账户中确认任何可选的自定义代理选择及相关使用费用。
问:HTTP 200 是否证明网站到 Markdown 的转换结果可用?
不。使用前请检查嵌套任务结果、页面状态、预期字段和主体可靠性。
Oct. 28th 2026
支持 JavaScript 渲染,成功率达 99.8%
将任意网站转换为 Markdown、HTML、JSON、链接、PDF 等格式,无需管理爬取基础设施。