主题
实时抓取 WordPress 搜索结果高级版
本接口用于实时获取指定关键词、地区和语言下的搜索结果页面(SERP)数据,返回结构化解析结果。默认,桌面端最多返回 20 条结果,移动端最多返回 10 条结果。
接口地址
POST https://api.seermartech.cn/v3/serp/wp/v2/live/advanced
计费说明
该接口按请求计费。
参考价约 ¥0.0320 / 次。
说明:
- 每次请求支持提交 1 个任务
- 每分钟最多可发送 2000 次 API 调用
- 当桌面端返回不 20 条、或移动端返回不 10 条结果时,按一次基础请求计费
- 如果
depth过桌面 20 条或移动端 10 条,且搜索引擎返回了更多结果,可能产生额外扣费 - 如果设置的
depth大于返回结果数,差额会自动退回账户余额 - 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
所有 POST 数据需使用 UTF-8 编码的 JSON 格式提交,请求体为 JSON 数组:[{ ... }]
请求参数
主要参数
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | 填。搜索,最长支持 700 个字符。请求中的 %## 会被解码,字符 + 会被解码为空格。如果本身需要 %,请传 %25;如果需要 +,请传 %2B。 |
location_code | integer | 搜索地区代码。如果未传 location_name 或 location_coordinate,则为填。使用该字段时,无需再传 location_name 或 location_coordinate。可通过 /v3/serp/wp/locations 查询可用地区代码。示例:2840 |
language_code | string | 搜索语言代码。如果未传 language_name,则为填。使用该字段时,无需再传 language_name。可通过 /v3/serp/wp/languages 查询可用语言代码。示例:en |
depth | integer | 解析深度,可选。表示希望返回的 SERP 结果数。桌面端默认 20、最大 100;移动端默认 10、最大 100。 |
device | string | 设备类型,可选。可选值:desktop、mobile。默认值:desktop。 |
附加参数
| 字段名 | 类型 | 说明 |
|---|---|---|
location_name | string | 搜索地区完整名称。如果未传 location_code 或 location_coordinate,则为填。使用该字段时,无需再传 location_code 或 location_coordinate。可通过 /v3/serp/wp/locations 查询可用地区名称。示例:London,England,United Kingdom |
language_name | string | 搜索语言完整名称。如果未传 language_code,则为填。使用该字段时,无需再传 language_code。可通过 /v3/serp/wp/languages 查询可用语言名称。示例:English |
os | string | 设备操作系统,可选。若 device=desktop,可选 windows、macos,默认 windows;若 device=mobile,可选 android、ios,默认 android。 |
tag | string | 自定义任务标识,可选,最大 255 字符。可用于请求与响应结果的,响应中的 data 对象会返回该值。 |
priority | integer | 任务优级,可选。可选值:1(普通优级,默认)、2(高优级)。高优级任务会产生额外费用,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。 |
location_coordinate | string | GPS 坐标定位,可选。如果未传 location_name 或 location_code,则为填。格式为 "latitude,longitude,zoom"。若未提供 zoom,默认使用 9z。latitude 与 longitude 最多支持 7 位小数;zoom 最小 4z,最大 18z。示例:52.6178549,-155.352142,20z |
min_rating | integer | 按最低评分过滤结果,可选。桌面端可选值:3.5、4、4.5;移动端可选值:2、2.5、3、3.5、4、4.5。 |
time_filter | string | 按营业时间过滤结果,可选。可用于筛选当前营业、24 小时营业,或某天某时营业的地点。注意:搜索引擎仍可能返回部分不匹该过滤条件的结果。可选值:"open_now"、"24_hours"、"$day_value"、"$day_value;$time_value"。 $day_value 可取 monday、tuesday、wednesday、thursday、friday、saturday、sunday;$time_value 可取 "00" 至 "23"。示例:"tuesday;18" |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/serp/wp/v2/live/advanced" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"language_code": "en",
"location_code": 2840,
"keyword": "local nail services",
"min_rating": 4.5,
"time_filter": "monday"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/serp/wp/v2/live/advanced"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"language_code": "en",
"location_code": 2840,
"keyword": "local nail services",
"min_rating": 4.5,
"time_filter": "monday"
}
]
response = requests.post(url, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
async function fetchSerp {
const response = await axios.post(
"https://api.seermartech.cn/v3/serp/wp/v2/live/advanced",
[
{
language_code: "en",
location_code: 2840,
keyword: "local nail services",
min_rating: 4.5,
time_filter: "monday",
},
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
console.log(response.data);
}
fetchSerp;响应结构
接口返回 JSON 数据, tasks 数组,每个任务中对应的抓取结果。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。完整错误码见 /v3/appendix/errors。建议在业务中实现完善的异常处理。 |
status_message | string | 通用状态信息。 |
time | string | 执行耗时,单位秒。 |
cost | float | 本次请求总费用,单位 USD。 |
tasks_count | integer | tasks 数组中的任务数量。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务数组。 |
任务字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。 |
status_code | integer | 任务状态码,范围通常为 10000–60000。完整错误码见 /v3/appendix/errors。 |
status_message | string | 任务状态信息。 |
time | string | 当前任务执行耗时,单位秒。 |
cost | float | 当前任务费用,单位 USD。 |
result_count | integer | result 数组中的数量。 |
path | array | URL 路径。 |
data | object | 与请求中提交的参数一致。 |
result | array | 结果数组。 |
result 结果字段
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | POST 请求中的。返回值会对 %## 解码,+ 会被解码为空格。 |
type | string | 请求中的搜索引擎类型。 |
se_domain | string | 请求中的搜索引擎域名。 |
location_code | integer | 请求中的地区代码。 |
language_code | string | 请求中的语言代码。 |
check_url | string | 可直接访问的搜索结果页链接,可用于核对返回结果。 |
datetime | string | 结果抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。示例:2019-11-15 12:57:46 +00:00 |
spell | object | 搜索引擎自动纠错信息。 |
spell.keyword | string | 自动纠错后的,返回结果将基于该词。 |
spell.type | string | 自动纠错类型,可选值:did_you_mean、showing_results_for、no_results_found_for、including_results_for |
refinement_chips | object | 搜索细化标签。 |
refinement_chips.type | string | 固定为 refinement_chips。 |
refinement_chips.xpath | string | 素的 XPath。 |
refinement_chips.items | array | 细化项列表。 |
refinement_chips.items[].type | string | 固定为 refinement_chips_element。 |
refinement_chips.items[].title | string | 细化项标题。 |
refinement_chips.items[].url | string | 带筛选参数的搜索 URL。 |
refinement_chips.items[].domain | string | 结果域名。 |
refinement_chips.items[].options | array | 进一步细化选项。 |
refinement_chips.items[].options[].type | string | 固定为 refinement_chips_option。 |
refinement_chips.items[].options[].title | string | 选项标题。 |
refinement_chips.items[].options[].url | string | 带筛选参数的搜索 URL。 |
refinement_chips.items[].options[].domain | string | 结果域名。 |
item_types | array | 当前 SERP 中出现的结果类型列表。 |
se_results_count | integer | SERP 中结果总数。 |
items_count | integer | items 数组中的结果数量。 |
items | array | SERP 结果明细。 |
items 中的本地结果
该接口主要返回 local_pack 类型结果。
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 结果类型,固定为 local_pack。 |
rank_group | integer | 同类结果分组排名。在相同 type 的连续计数。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
position | string | 素在页面中的位置,可选 left、right。 |
xpath | string | 素的 XPath。 |
title | string | 本地商家标题。 |
description | string | 结果描述文本。 |
domain | string | 结果展示域名。 |
phone | string | 电话号码。 |
booking_url | string | 预约页面链接。 |
url | string | 网页链接。 |
is_paid | boolean | 是否为广告。 |
rating | object | 商家评分信息。 |
rating.rating_type | string | 评分类型,可能为 Max5、Percents、CustomMax。 |
rating.value | float | 评分值。 |
rating.votes_count | integer | 评价数量。 |
rating.rating_max | integer | 当前评分类型下的最大值。 |
cid | string | 平台定义的本地商家唯一 ID。可与评论接口联动,用于获取该商家的完整评论列表。 |
rectangle | object | 结果在页面中的矩形区域参数,坐标与像素尺寸。本接口示例中该值为 null。 |
响应示例
json
{
"version": "0.1.20220819",
"status_code": 20000,
"status_message": "Ok.",
"time": "4.0522 sec.",
"cost": 0.002,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "serp",
"function": "live",
"se": "google",
"se_type": "local_finder",
"language_code": "en",
"location_code": 2840,
"keyword": "local nail services",
"min_rating": 4.5,
"time_filter": "monday",
"device": "desktop",
"os": "windows"
},
"result": [
{
"se_results_count": 0,
"items_count": 20,
"items": [
{
"type": "local_pack",
"title": "Liam Nails",
"description": "5+ years in business · Mon: 9AM–5PM · +1 443-640-4298",
"domain": "kubiti.wordpress.com",
"phone": "+1 443-640-4298",
"booking_url": "https://www.google.com/maps/reserve/...",
"url": "https://kubiti.wordpress.com/nail-trends/?liam+nails",
"is_paid": false,
"rating": {
"rating_type": "Max5",
"value": 4.5,
"votes_count": 50,
"rating_max": 5
},
"cid": "5302726516741959894",
"rectangle": null
},
{
"type": "local_pack",
"title": "Elite Nails",
"description": "10+ years in business · Bartlesville, OK, United States · Mon: 9AM–7PM · +1 918-333-9888",
"domain": "kubiti.wordpress.com",
"phone": "+1 918-333-9888",
"booking_url": "https://www.google.com/maps/reserve/...",
"url": "https://kubiti.wordpress.com/nail-trends/?elite+nails",
"is_paid": false,
"rating": {
"rating_type": "Max5",
"value": 4.7,
"votes_count": 353,
"rating_max": 5
},
"cid": "17867200233795892980",
"rectangle": null
}
]
}
]
}
]
}错误处理
请重点以下字段:
- 顶层
status_code/status_message - 任务级
tasks[].status_code/tasks[].status_message
完整错误码与说明请参考:/v3/appendix/errors
建议:
- 对非
20000状态进行统一异常处理 - 对
tasks_error > 0的响应逐任务检查 - 记录请求参数中的
tag,便于链路追踪 - 结合
cost字段进行费用审计
使用说明
- 本接口为实时接口,请求发出后直接返回解析结果
- 每个请求体数组中只能一个任务对象
- 若需要更精准的地域定位,优使用
location_coordinate - 若需要业务筛选,可结合
min_rating与time_filter缩小本地结果范围 - 返回的
cid可用于后续本地商家评价、口碑监测等业务流程
实用场景
- 筛选本地高评分商家:按、地区和最低评分抓取本地结果,快速构建门店竞争对手单。
- 监控营业时段:结合
time_filter检查“当前营业”或特定时段的本地结果,评估门店在营业时间的可见性。 - 分析本地 SERP 排名格局:基于
rank_group、rank_absolute、title、domain等字段识别头部商家与排名波动。 - 挖掘预约与转化:提取
booking_url、phone、url等字段,分析本地结果中的预约链路与转化触点。 - 商家评论数据:使用返回的
cid作为后续评论采集与口碑分析的主键,建立本地 SEO 与评价管理闭环。