Skip to content

Naver 自然搜索任务创建

POST /v3/serp/naver/organic/task_post

接口说明

该接口用于提交 Naver 自然搜索(Organic SERP)抓取任务,对应路径为:

POST /v3/serp/naver/organic/task_post

Naver 搜索结果默认返回前 15 条。该搜索引擎的结果不区分 location 和 language 参数,因此本接口无需传语言和地区字段。不过,你仍可使用任意语言的发起查询,最终返回结果可能会随查询语言而变化。

接口支持两种任务优级:

  • 1:普通优级(默认)
  • 2:高优级

高优级任务通常执行更快,但会产生额外费用。

计费说明

该接口在创建任务时计费

  • 基础参考价:约 ¥0.0240 / 次
  • 若使用高优级、增大抓取深度,或抓取到更多结果页,费用可能增加
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准

请求方式

POST https://api.seermartech.cn/v3/serp/naver/organic/task_post

请求规则

  • 请求体为 UTF-8 编码的 JSON
  • POST 请求体格式为 JSON 数组[{...}]
  • 单次 POST 最多可提交 100 个任务
  • 每分钟最多可发起 2000 次 API 调用
  • 若单次请求中任务数 100,出部分将返回错误 40006

任务创建成功后,你可以:

  • 通过返回的任务 id 轮询结果;
  • 或在创建任务时传 postback_url / pingback_url,由系统在任务完成后主动通知。

如果你的回调服务在 10 秒未响应,连接会因时中断,任务将转可提取结果列表。错误码和错误信息取决于你的服务端。


请求参数

顶层任务对象字段

字段名类型说明
keywordstring查询。最长 700 个字符%## 会被解码,+ 会被解码为空格;若中需要保留 %,请写为 %25;若需要保留 +,请写为 %2B
urlstring直接传搜索 URL,系统会自动解析为所需字段。一般不建议使用该方式。示例:https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=iphone
priorityinteger任务优级。1 = 普通优级(默认);2 = 高优级。高优级会额外计费。
depthinteger抓取结果数量。默认 15,最大 700每 15 条结果按 1 个 SERP 单位计费;若 depth > 15 且搜索引擎返回更多结果,可能产生额外费用。
max_crawl_pagesinteger最大抓取页数。默认 1,最大 100。该参数与 depth合使用,用于控制翻页抓取范围。
devicestring设备类型。可选:desktopmobile。默认 desktop
osstring操作系统类型。若 device=desktop,可选 windowsmacos,默认 windows;若 device=mobile,可选 androidios,默认 android
se_domainstring搜索引擎域名。通常会自动选择,也可自定义,例如:search.naver.com
search_paramstring附加搜索参数。用于补搜索请求控制项。
stop_crawl_on_matcharray命中指定目标后停止继续翻页抓取。最多可传 10 个目标对象。若设置,响应只会返回抓取到并命中项为止的结果。系统会对满足条件前已抓取的每个 SERP 计费。
tagstring自定义任务标识,最长 255 字符。可用于请求结果,返回结果中的 data 对象会原样带回该值。
postback_urlstring任务完成后,系统会将结果以 gzip 压缩的 POST 请求发送到该地址。支持 $id$tag 变量替换。
postback_datastring条件填当设置 postback_url 时填。可选值:regularadvancedhtml
pingback_urlstring任务完成后,系统会向该地址发送 GET 通知。支持 $id$tag 变量替换。

stop_crawl_on_match 目标对象字段

字段名类型说明
match_valuestring要匹的目标域名、子域名或通符表达式。不要协议头。示例:本平台.com/blog/post-*
match_typestring匹类型。可选值:domainwith_subdomainswildcard

回调参数说明

postback_url

任务完成后,系统会将结果推送到该 URL。

支持占位符:

  • $id:任务 ID
  • $tag:经过 URL 编码的任务标记

示例:

  • http://your-server.com/postbackscript?id=$id
  • http://your-server.com/postbackscript?id=$id&tag=$tag

注意:

  • postback_url 中的特殊字符会进行 URL 编码
  • 例如 # 会被编码为 %23

pingback_url

任务完成后,系统会向该 URL 发送 GET 通知。

支持占位符:

  • $id
  • $tag

示例:

  • http://your-server.com/pingscript?id=$id
  • http://your-server.com/pingscript?id=$id&tag=$tag

注意事项同 postback_url


返回结果说明

接口返回 JSON 数据 tasks 数组,记录本次提交的任务信息。

顶层响应字段

字段名类型说明
versionstring当前 API 版本
status_codeinteger接口通用状态码
status_messagestring接口通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中返回错误的任务数量
tasksarray任务列表

tasks 数组字段

字段名类型说明
idstring系统唯一任务 ID,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态说明
timestring任务处理耗时
costfloat单个任务费用,单位 USD
result_countintegerresult 数组数量
patharray请求路径
dataobject创建任务时传的参数回显
resultarray/null对于任务创建接口,此处通常为 null

建议你在接时实现完整的状态码和异常处理逻辑,是针对任务级失败、时和回调异常的处理。


请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/serp/naver/organic/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "keyword": "albert einstein"
 },
 {
 "keyword": "albert einstein",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/serp/naver/organic/task_post"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

# 请求体是 JSON 数组
payload = [
 {
 "keyword": "albert einstein"
 },
 {
 "keyword": "albert einstein",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]

response = requests.post(url, headers=headers, json=payload)
print(response.json)

TypeScript

typescript
import axios from "axios";

const payload = [
 {
 keyword: "albert einstein"
 },
 {
 keyword: "albert einstein",
 priority: 2,
 tag: "some_string_123",
 pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/serp/naver/organic/task_post",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 },
 data: payload
})
 .then((response) => {
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

返回示例

json
{
 "version": "0.1.20210304",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.1338 sec.",
 "cost": 0.0015,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 "status_code": 20100,
 "status_message": "Task Created.",
 "time": "0.0317 sec.",
 "cost": 0.0015,
 "result_count": 0,
 "path": [
 "v3",
 "serp",
 "naver",
 "organic",
 "task_post"
 ],
 "data": {
 "api": "serp",
 "function": "task_post",
 "se": "naver",
 "se_type": "organic",
 "keyword": "albert einstein",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
 "device": "desktop",
 "os": "windows"
 },
 "result": null
 }
 ]
}

常见状态与错误处理

状态码含义
20000请求成功
20100任务已成功创建
40006单次 POST 请求中的任务数 100

说明:

  • status_code 既可能出现在顶层响应,也可能出现在单个任务对象中;
  • 接时应分别判断接口级状态任务级状态
  • 更多错误码请参考 /v3/appendix/errors

使用建议

  • 优使用 keyword 创建任务,只有在你明确需要复用现成搜索链接时再使用 url
  • 若需要抓取更多结果,请合理组合 depthmax_crawl_pages,无效翻页带来的额外成本
  • 若你只心某个竞品域名是否出现在结果中,可结合 stop_crawl_on_match 降低抓取页数
  • 生产环境建议 pingback_urlpostback_url,减少轮询压力
  • 回调服务需确保 10 秒可响应,时导致结果改走取列表

实用场景

  • 监控品牌词排名:提交品牌词或核心产品词的 Naver 自然搜索任务,持续追踪品牌官网、新闻页和第三方页面的位置。
  • 分析竞品可见度:抓取竞品在 Naver 的自然结果,判断竞品站点是否前 15 或更深层结果,为韩国市场 SEO 策略提供依据。
  • 验证多语言检索表现:用韩语、英语或语言分别提交同一主题,比较不同语言查询下的结果差异,优化跨语言布局。
  • 定位目标域名是否上榜:结合 stop_crawl_on_match,在命中指定域名后立即停止翻页,快速判断官网或竞品页面是否搜索结果并控制成本。
  • 构建自动化结果回流流程pingback_urlpostback_url,在任务完成后自动接收结果,用于报表系统、排名预警或 SEO 数据仓库更新。

统一入口:官网 · LLM API · 控制台