主题
按任务 ID 获取 Lighthouse 审计结果
GET /v3/appendix/errors
本接口使用 GET 方法,通过任务 ID 获取 Lighthouse 审计结果:
GET https://api.seermartech.cn/v3/on_page/lighthouse/task_get/json/$id
本接口基于开源 Lighthouse 项目,用于获取网页或 Web 应用的性能、可访问性、渐进式 Web 应用、SEO 及最佳实践等审计数据。任务 ID 来自提交 Lighthouse 任务的 POST 接口响应。响应中的 result取决于创建任务时指定的分类和审计项;未指定时,通常返回网页可用的完整审计数据。
> 如果审计项名称斜杠 /,请使用斜杠后的最后一个单词在 audits 对象中查找对应结果。
请求
请求参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
id | string | 是 | 任务唯一标识符。可从 Lighthouse Task POST 接口的响应中获取,格式为 UUID。示例:07131248-1535-0216-1000-17384017ad04 |
请求示例
bash
id="07281559-0695-0216-0000-c269be8b7592"
curl --location --request GET \
"https://api.seermartech.cn/v3/on_page/lighthouse/task_get/json/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"本接口为 GET 请求,不需要请求体。
Python
python
from client import RestClient
client = RestClient("smt_live_YOUR_KEY")
# 根据任务 ID 获取 Lighthouse 结果
task_id = "07281559-0695-0216-0000-c269be8b7592"
response = client.get(
"/v3/on_page/lighthouse/task_get/json/" + task_id
)
if response.get("status_code") == 20000:
print(response)
else:
print(
"请求失败,状态码:%s,消息:%s"
% (response.get("status_code"), response.get("status_message"))
)TypeScript
typescript
import axios from "axios";
const taskId = "07281559-0695-0216-0000-c269be8b7592";
axios.get(
`https://api.seermartech.cn/v3/on_page/lighthouse/task_get/json/${taskId}`,
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
)
.then((response) => {
// Lighthouse 结果
console.log(response.data);
})
.catch((error) => {
console.error("请求失败:", error.response?.data || error.message);
});计费说明
本接口用于读取已提交任务的结果,通常不会产生额外的任务费用。费用在提交任务时产生,扣费以任务提交接口的响应为准。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 请求总体状态码。完整状态码列表请参考 /v3/appendix/errors |
status_message | string | 请求总体说明信息 |
time | string | 请求执行耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数量 |
tasks | array | 任务结果数组 |
tasks 数组中的字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式 |
status_code | integer | 任务状态码,通常为 10000 至 60000 |
status_message | string | 任务状态说明 |
time | string | 任务执行耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量 |
path | array | 请求 URL 的路径信息 |
data | object | 创建任务时提交的参数 |
result | array | Lighthouse 审计结果数组 |
data 字段
data含创建任务时使用的主要参数,例如:
| 字段 | 类型 | 说明 |
|---|---|---|
api | string | API 模块,例如 on_page |
function | string | 功能名称,例如 lighthouse |
url | string | 执行审计的网页 URL |
for_mobile | boolean | 是否使用移动设备执行审计 |
categories | array | 创建任务时指定的 Lighthouse 分类 |
result 字段
result 是 Lighthouse 的详细审计结果,字段会随任务参数和 Lighthouse 版本变化。常见字段:
| 字段 | 类型 | 说明 |
|---|---|---|
userAgent | string | 执行审计时使用的用户代理 |
environment | object | 执行环境及基准信息 |
audits | object | 各项审计结果,键名为审计 ID |
categories | object | 分类级评分,例如性能评分 |
categoryGroups | object | 审计分组及说明 |
configSettings | object | Lighthouse置设备、网络、CPU 和屏幕模拟设置 |
timing | object | Lighthouse 执行时序信息 |
i18n | object | Lighthouse化文本及格式化信息 |
fullPageScreenshot | object | 页截图信息;可能 Base64 编码图片 |
entities | array | 页面中识别出的第三方实体及资源信息 |
audits 中的常见审计字段
每个审计项通常以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 审计项 ID,例如 largest-contentful-paint |
title | string | 审计项标题 |
description | string | 审计项说明 |
score | float/null | 审计得分,范围通常为 0 至 1;不适用时为 null |
scoreDisplayMode | string | 得分展示模式,例如 numeric、informative、metricSavings |
numericValue | number | 数值型审计结果 |
numericUnit | string | 数值单位,例如 millisecond、byte |
displayValue | string | 面向用户展示的格式化结果 |
scoringOptions | object | 评分阈值或参考值 |
metricSavings | object | 预计可改善的指标或节省量 |
details | object | 表格、节点、机会项、截图或调试数据 |
warnings | array | 审计警告 |
guidanceLevel | integer | 建议处理优级 |
响应示例
以下示例展示主要结构。响应中的 audits、截图、网络请求和节点信息可能大量数据。
json
{
"version": "0.1.20260318",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0919 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "07281559-0695-0216-0000-c269be8b7592",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0919 sec.",
"cost": 0,
"result_count": 1,
"data": {
"api": "on_page",
"function": "lighthouse",
"url": "https://www.example.com",
"for_mobile": false,
"categories": ["performance"]
},
"result": [
{
"audits": {
"first-contentful-paint": {
"id": "first-contentful-paint",
"title": "First Contentful Paint",
"score": 0.98,
"scoreDisplayMode": "numeric",
"numericValue": 694.264,
"numericUnit": "millisecond",
"displayValue": "0.7 s"
},
"largest-contentful-paint": {
"id": "largest-contentful-paint",
"title": "Largest Contentful Paint",
"score": 0.87,
"scoreDisplayMode": "numeric",
"numericValue": 1284.36,
"numericUnit": "millisecond",
"displayValue": "1.3 s"
},
"cumulative-layout-shift": {
"id": "cumulative-layout-shift",
"title": "Cumulative Layout Shift",
"score": 1,
"scoreDisplayMode": "numeric",
"numericValue": 0.00936,
"numericUnit": "unitless",
"displayValue": "0.009"
}
},
"categories": {
"performance": {
"id": "performance",
"title": "Performance",
"score": 0.93
}
},
"configSettings": {
"formFactor": "desktop",
"locale": "en-US",
"screenEmulation": {
"mobile": false,
"width": 1350,
"height": 940,
"deviceScaleFactor": 1
},
"throttlingMethod": "simulate"
}
}
]
}
]
}状态码与异常处理
建议同时检查以下状态码:
- HTTP 状态码,用于判断网络层和服务层请求是否成功。
- 顶层
status_code,用于判断本次 API 请求是否成功。 tasks[].status_code,用于判断任务是否成功。tasks[].result是否存在,用于判断任务是否返回有效结果。
当任务状态码表示失败,或 result 为空时,应读取对应的 status_message,并业务需要进行重试、记录或告警。完整错误码列表请参考 /v3/appendix/errors。
注意事项
-须使用创建任务时返回的任务 ID 请求结果。
- 任务尚未完成时,可能暂时无法获取完整的
result数据。 - Lighthouse 结果会受到设备模拟、网络条件、CPU置及页面动态影响。
score为null时,通常表示该审计不适用,或不参与对应分类评分。fullPageScreenshot.screenshot.data和截图类审计可能返回较大的 Base64 字符串,建议按需存储或删除。- 如果只需要少量指标,建议在创建任务时限制
categories或审计项,减少响应体积和处理成本。 audits的完整字段定义以当前 Lighthouse 版本为准。
实用场景
- 监控核心网页指标:定期获取 FCP、LCP、CLS、TBT 等 Lighthouse 指标,及时发现页面性能回退并降低自然流量损失。
- 定位页面加载瓶颈:分析网络请求、主线程任务、渲染阻塞资源和服务器响应时间,为前端及后端优化提供明确依据。
- 执行移动端 SEO 检查:获取移动设备模拟下的可用性、视口、及抓取审计结果,提升移动搜索体验。
- 生成技术 SEO 报告:汇总性能、可访问性、SEO 和最佳实践分类评分,为客户交付、月报和整改验收提供数据。
- 对比优化前后效果:保存不同版本的 Lighthouse 结果,比较评分、资源体积和预计节省量,量化技术优化带来的收益。