Skip to content

OnPage API:获取页面列表

POST /v3/on_page/pages

本接口使用 POST 方法,通过 /v3/on_page/pages 获取指定爬取任务中的页面列表、页面级 SEO 检查结果、性能指标、分析、资源错误及重定向信息。

该接口要求通过 /v3/on_page/task_post 创建爬取任务,并使用任务响应中的 id 查询页面结果。

计费说明

当前使用本接口不产生额外费用,任务结果可在任务创建后的 30 天查询。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求

请求地址

http
POST https://api.seermartech.cn/v3/on_page/pages
Authorization: Bearer smt_live_YOUR_KEY
Content-Type: application/json

所有请求数据使用 UTF-8 编码的 JSON 格式。请求体是 JSON 数组,即使只查询一个任务,也需要将对象放数组中。

请求参数

参数类型说明
idstring任务 ID。取自 /v3/on_page/task_post 的响应。UUID 示例:07131248-1535-0216-1000-17384017ad04
limitinteger返回页面的最大数量。默认 100,最大 1000
offsetinteger结果数组的偏移量。默认 0,最大 2000000。例如设置为 10,则跳过前 10 条结果
filtersarray结果过滤条件。最多设置 8 个过滤条件
order_byarray结果排序规则。最多设置 3 条排序规则
search_after_tokenstring分页令牌。适合单次查询 20,000 条结果时使用
tagstring自定义任务标识,最长 255 个字符。该值会原样返回在响应的 data 对象中

filters 过滤条件

过滤条件格式如下:

json
[
  ["resource_type", "=", "html"],
  "and",
  ["meta.scripts_count", ">", 40]
]

支持的运算符:

  • regex
  • not_regex
  • <
  • <=
  • >
  • >=
  • =
  • <>
  • in
  • not_in
  • like
  • not_like

likenot_like 支持使用 % 匹任意长度的字符串。

多个条件之间使用逻辑运算符 andor。完整过滤字段和阈值说明请参考过滤器文档。

order_by 排序规则

排序参数使用以下格式:

json
[
  "meta.content.plain_text_word_count,desc",
  "onpage_score,asc"
]

排序方向支持:

  • asc:升序
  • desc:降序

多个排序规则使用数组分隔,单次请求最多设置 3 条规则。

search_after_token 分页

响应中会返回下一页使用的 search_after_token。将该值放下一次请求即可继续获取同一任务的后续结果。

使用该参数时,除 search_after_token 外余请求参数与上一次请求保持一致。每个后续任务对应唯一的分页令牌。

请求示例

cURL

bash
curl --location --request POST \
  "https://api.seermartech.cn/v3/on_page/pages" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '[
    {
      "id": "07281559-0695-0216-0000-c269be8b7592",
      "filters": [
        ["resource_type", "=", "html"],
        "and",
        ["meta.scripts_count", ">", 40]
      ],
      "order_by": [
        "meta.content.plain_text_word_count,desc"
      ],
      "limit": 10
    }
  ]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/on_page/pages"

headers = {
    "Authorization": "Bearer smt_live_YOUR_KEY",
    "Content-Type": "application/json",
}

payload = [
    {
        "id": "07281559-0695-0216-0000-c269be8b7592",
        "filters": [
            ["resource_type", "=", "html"],
            "and",
            ["meta.scripts_count", ">", 40],
        ],
        "order_by": [
            "meta.content.plain_text_word_count,desc"
        ],
        "limit": 10,
    }
]

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

if result.get("status_code") == 20000:
    print(result)
else:
    print(
        "请求失败,状态码:%s,消息:%s"
        % (result.get("status_code"), result.get("status_message"))
    )

TypeScript

typescript
import axios from "axios";

const payload = [
  {
    id: "07281559-0695-0216-0000-c269be8b7592",
    filters: [
      ["resource_type", "=", "html"],
      "and",
      ["meta.scripts_count", ">", 40],
    ],
    order_by: ["meta.content.plain_text_word_count,desc"],
    limit: 10,
  },
];

axios
  .post(
    "https://api.seermartech.cn/v3/on_page/pages",
    payload,
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    // 处理页面列表结果
    console.log(response.data);
  })
  .catch((error) => {
    console.error("请求失败:", error.response?.data || error.message);
  });

响应结构

响应为 JSON 对象,主要字段如下:

字段类型说明
versionstringAPI 当前版本
status_codeinteger总体状态码。20000 表示成功
status_messagestring总体状态消息
timestring执行耗时,例如 0.8376 sec.
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务结果数组

tasks 任务字段

字段类型说明
idstring系统生成的唯一任务 ID,UUID 格式
status_codeinteger任务状态码,通常在 10000–60000 范围
status_messagestring任务状态消息
timestring任务执行耗时
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的结果数量
patharray请求路径
dataobject创建任务或查询任务时提交的参数
resultarray页面结果数组

建议客户端同时处理 HTTP 错误、总体 status_code 和任务级 status_code。完整状态码请参考错误码文档。

result 结果字段

爬取状态

字段类型说明
crawl_progressstring爬取状态:in_progressfinished
crawl_statusobject爬取会话状态
crawl_status.max_crawl_pagesinteger创建任务时设置的最大爬取页数
crawl_status.pages_in_queueinteger当前排队中的页面数量
crawl_status.pages_crawledinteger已爬取页面数量
crawl_status.total_items_countinteger数据库中项目总数
crawl_status.items_countinteger当前结果中的项目数量
itemsarray页面、资源、错误页面或重定向页面列表

items 项目类型

items 中的每一项通常以下三类对象之一:

  • html_page:正常 HTML 页面
  • broken_page:错误页面或不可访问页面
  • redirect_page:重定向页面
  • resources:脚本、图片或样式表资源

html_page 字段

页面基础信息

字段类型说明
resource_typestring资源类型,固定为 html
status_codeinteger页面 HTTP 状态码
locationstringLocation 响应头中的目标地址
urlstring页面 URL
sizeinteger页面原始大小,单位为字节
encoded_sizeinteger编码后的页面大小,单位为字节
total_transfer_sizeinteger压缩后的传输大小,单位为字节
fetch_timestring抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
content_encodingstring编码类型
media_typestring媒体类型,例如 text/html
serverstring服务器版本
is_resourceboolean是否为单个资源
url_lengthintegerURL 总长度
relative_url_lengthinteger相对 URL 长度
click_depthinteger从首页到该页面所需的点击层级
onpage_scorefloat页面 SEO 优化得分,范围为 0–100
total_dom_sizeinteger页面 DOM 总大小

meta 页面数据

字段类型说明
titlestring页面标题
charsetinteger字符编码代码页,例如 65001
followbooleanmeta robots 是否爬虫跟踪页面链接;为 false 时通常表示存在 nofollow
generatorstringgenerator标签
htagsobjectHTML 标题标签统计,如 h1h2h3
descriptionstringdescription标签
faviconstring页面 favicon 地址
meta_keywordsstringkeywords标签
canonicalstring规范 URL
meta_titlestring页面 HTML 中的 meta title
internal_links_countinteger页面链接数量
external_links_countinteger页面外部链接数量
inbound_links_countinteger指向该页面的链接数量
images_countinteger图片数量
images_sizeinteger图片总大小,单位为字节
scripts_countinteger脚本数量
scripts_sizeinteger脚本总大小,单位为字节
stylesheets_countinteger样式表数量
stylesheets_sizeinteger样式表总大小,单位为字节
title_lengthintegertitle 标签字符数
description_lengthintegerdescription 标签字符数
render_blocking_scripts_countinteger阻塞页面渲染的脚本数量
render_blocking_stylesheets_countinteger阻塞页面渲染的样式表数量

content分析

字段类型说明
plain_text_sizeinteger页面纯文本大小,单位为字节
plain_text_rateinteger/float纯文本大小与页面总大小的比值
plain_text_word_countfloat页面单词数量
automated_readability_indexfloat自动化可读性指数
coleman_liau_readability_indexfloatColeman–Liau 可读性指数
dale_chall_readability_indexfloatDale–Chall 可读性指数
flesch_kincaid_readability_indexfloatFlesch–Kincaid 可读性指数
smog_readability_indexfloatSMOG 可读性指数
description_to_content_consistencyfloatdescription 与页面的一致性,范围 0–1
title_to_content_consistencyfloattitle 与页面的一致性,范围 0–1
meta_keywords_to_content_consistencyfloatkeywords 与页面的一致性,范围 0–1
deprecated_tagsarray页面中使用的废弃标签
duplicate_meta_tagsarray重复的标签

拼写和社交标签

字段类型说明
spellobject拼写检查结果;需要创建任务时启用 check_spell
spell.hunspell_language_codestring拼写检查语言代码
spell.misspelledarray拼写错误单词列表
spell.misspelled[].wordstring拼写错误的单词
social_media_tagsobject页面中发现的社交媒体标签及, Open Graph、Twitter Card 等标签

page_timing 页面加载指标

字段类型说明
time_to_interactiveinteger可交互时间 TTI,单位为毫秒
dom_completeinteger页面及子资源加载完成时间,单位为毫秒
largest_contentful_paintfloat最大绘制 LCP,单位为毫秒
first_input_delayfloat首次延迟 FID,单位为毫秒
connection_timeinteger建立服务器连接的耗时,单位为毫秒
time_to_secure_connectioninteger建立连接的耗时,单位为毫秒
request_sent_timeinteger请求发送耗时,单位为毫秒
waiting_timeinteger首字节时间 TTFB,单位为毫秒
download_timeinteger接收响应的耗时,单位为毫秒
duration_timeinteger接收完整响应的总耗时,单位为毫秒
fetch_startinteger开始下载 HTML 的时间点
fetch_endinteger完成下载 HTML 的时间点

自定义脚本

字段类型说明
custom_js_responsestring/object/integer执行任务中指定的 custom_js 脚本后的结果。字段类型取决于脚本返回值
custom_js_client_exceptionstring执行自定义脚本时产生的错误信息

资源错误和警告

字段类型说明
resource_errors.errorsarrayHTML、JavaScript、CSS 或图片解析错误
resource_errors.errors[].lineinteger错误所在行
resource_errors.errors[].columninteger错误所在列
resource_errors.errors[].messagestring错误信息
resource_errors.errors[].status_codeinteger错误码
resource_errors.warningsarray资源警告列表
resource_errors.warnings[].lineinteger警告所在行;0 表示整个页面
resource_errors.warnings[].columninteger警告所在列;0 表示整个页面
resource_errors.warnings[].messagestring警告信息
resource_errors.warnings[].status_codeinteger警告码

资源错误码:

状态码含义
0未识别错误
501HTML 解析错误
1501JavaScript 解析错误
2501CSS 解析错误
3501图片解析错误
3502图片缩放值为零
3503图片尺寸为零
3504图片格式无效

资源警告码:

状态码含义
0未识别警告
1节点 60 个同级子节点
2DOM 树 1,500 个
3HTML 嵌套深度 32 层

常见警告消息:

  • Has node with more than 60 childs.
  • Has more that 1500 nodes.
  • HTML depth more than 32 tags.

页面检查字段

以下字段位于 html_page.checks 对象中,值为布尔类型:

字段说明
no_content_encoding页面未使用压缩
high_loading_time页面加载时间 3 秒
is_redirect页面存在 3XX 重定向
is_4xx_code页面返回 4XX 状态码
is_5xx_code页面返回 5XX 状态码
is_broken页面状态码小于 200 或大于 400
is_www页面位于 www 子域名
is_https页面使用 HTTPS
is_http页面使用 HTTP
high_waiting_timeTTFB过 1.5 秒
has_micromarkup页面微数据标记
has_micromarkup_errors微数据标记存在错误
no_doctype页面没有 DOCTYPE 声明
has_html_doctype页面 HTML DOCTYPE 声明
canonical页面为规范页面
no_encoding_meta_tag页面缺少编码标签
no_h1_tag页面缺少或为空的 H1 标签
https_to_http_linksHTTPS 页面指向 HTTP 页面的链接
size_greater_than_3mb页面大小 3 MB
meta_charset_consistency页面声明的字符集与字符集不一致
has_meta_refresh_redirect页面存在 meta refresh 重定向
has_render_blocking_resources页面阻塞渲染的脚本或样式表
redirect_chain页面经过至少两次重定向
from_sitemap页面存在于网站 Sitemap 中
low_content_rate纯文本与页面大小的比值小于 0.1
high_content_rate纯文本与页面大小的比值大于 0.9
low_character_count页面字符数少于 1,024
high_character_count页面字符数 256,000
small_page_size页面大小小于 1,024 字节
large_page_size页面大小 1 MB
low_readability_rateFlesch–Kincaid 可读性得分低于 15
irrelevant_descriptiondescription 与页面性低于 0.2
irrelevant_titletitle 与页面性低于 0.3
irrelevant_meta_keywordskeywords 与页面性低于 0.6
title_too_longtitle过 65 个字符
has_meta_titleHTML 中 meta title
title_too_shorttitle 少于 30 个字符
deprecated_html_tags页面使用废弃 HTML 标签
duplicate_meta_tags存在重复标签
duplicate_title_tag存在多个 title 标签
no_image_alt图片缺少 alt 属性
no_image_title图片缺少 title 属性
no_descriptiondescription 缺失或为空
no_titletitle 缺失或为空
no_favicon页面缺少 favicon
seo_friendly_urlURL 满足 SEO 友好性检查
flash页面 Flash素
frame页面 frameiframeframeset 标签
lorem_ipsum页面 Lorem ipsum 占位文本
has_misspelling页面存在拼写错误;在创建任务时启用 check_spell 后有效
seo_friendly_url_characters_checkURL 拉丁字母、数字和短横线
seo_friendly_url_dynamic_checkURL 不动态参数
seo_friendly_url_keywords_checkURL 与页面 title
seo_friendly_url_relative_length_checkURL 长度不 120 个字符
is_orphan_page页面没有站页面链接指向;需要任务参数 respect_sitemap=true
is_link_relation_conflict指向页面的链接同时存在 dofollow 和 nofollow
has_links_to_redirects页面链接指向存在 3XX 重定向的页面
canonical_chaincanonical 指向的页面仍指向 canonical 页面
canonical_to_redirectcanonical 指向发生重定向的页面
canonical_to_brokencanonical 指向返回 4XX 或 5XX 的页面
recursive_canonicalcanonical 链路形成循环

SEO 友好 URL 检查以下条件:

  1. 相对路径长度小于 120 个字符;
  2. 不特殊字符;
  3. 不动态参数;
  4. URL 与页面。

任一条件不满足时,seo_friendly_url 将返回 false

last_modified 最后修改时间

字段类型说明
last_modifiedobject/null资源最近修改信息;无数据时为 null
last_modified.headerstring/nullHTTP Header 的最后修改时间
last_modified.sitemapstring/nullSitemap 中的最后修改时间
last_modified.meta_tagstring/null标签中的最后修改时间

时间统一使用 UTC 格式,例如:

text
2019-11-15 12:57:46 +00:00

broken_page 错误页面

当项目的 resource_typebroken 时,通常返回以下字段:

字段类型说明
resource_typestring固定为 broken
status_codeinteger页面 HTTP 状态码
locationstring重定向目标地址
urlstring页面 URL
sizeinteger页面大小,单位为字节
encoded_sizeinteger编码后的页面大小
total_transfer_sizeinteger压缩后的传输大小
fetch_timestring资源抓取时间
fetch_timingobject抓取耗时信息
resource_errorsobject资源错误和警告,结构与 html_page.resource_errors 相同
cache_controlobject缓存控制信息
checksobject页面检查结果
content_encodingstring编码类型
media_typestring媒体类型
serverstring服务器版本
is_resourceboolean是否为单个资源
last_modifiedobject/null最后修改时间

fetch_timing 字段:

字段类型说明
duration_timeinteger下载页面所需时间
fetch_startinteger开始下载 HTML 的时间点
fetch_endinteger完成下载 HTML 的时间点

redirect_page 重定向页面

当项目的 resource_typeredirect 时,通常返回以下字段:

字段类型说明
resource_typestring固定为 redirect
status_codeinteger页面 HTTP 状态码
locationstring重定向目标 URL
urlstring重定向源 URL
sizeinteger资源大小;重定向资源通常为 0
encoded_sizeinteger编码后的资源大小;重定向资源通常为 0
total_transfer_sizeinteger压缩后的传输大小
fetch_timestring资源抓取时间
fetch_timingobject抓取耗时信息
resource_errorsobject资源错误和警告
cache_controlobject缓存控制信息
checksobject页面检查结果
content_encodingstring编码类型
media_typestring媒体类型,例如 text/html
serverstring服务器版本
is_resourceboolean是否为单个资源
last_modifiedobject/null最后修改时间

resources 资源对象

只有当任务的起始 URL 为脚本、图片或样式表时,结果中才会返回资源类型项目。

基础字段

字段类型说明
resource_typestring资源类型:scriptimagestylesheet
status_codeinteger资源所在页面的 HTTP 状态码
locationstringLocation 响应头
urlstring资源 URL
sizeinteger资源大小,单位为字节
encoded_sizeinteger编码后的资源大小
total_transfer_sizeinteger压缩后的传输大小
fetch_timestring资源抓取时间
content_encodingstring编码类型
media_typestring资源媒体类型
accept_typestring期望的资源类型。可能值 anynoneimagesitemaprobotsscriptstylesheetredirecthtmltextotherfont
serverstring服务器版本
last_modifiedobject/null资源最后修改时间
resource_errorsobject资源错误和警告

resources.meta数据

该对象主要用于图片资源:

字段类型说明
alternative_textstring图片 alt 属性
alternative_text_variationsarray同一图片资源发现的不同 alt
titlestring图片标题
alternative_title_variationsarray同一图片资源发现的不同 title

resources.fetch_timing

字段类型说明
duration_timeinteger获取资源所需时间,单位为毫秒
fetch_startinteger/object开始下载资源的时间点
fetch_endinteger完成下载资源的时间点

resources.cache_control

字段类型说明
cachableboolean资源是否可缓存
ttlinteger缓存有效期,单位为毫秒

resources.checks

字段类型说明
no_content_encodingboolean资源未使用压缩
high_loading_timeboolean资源加载时间 3 秒
is_redirectboolean资源存在 3XX 重定向
is_4xx_codeboolean资源返回 4XX 状态码
is_5xx_codeboolean资源返回 5XX 状态码
is_brokenboolean资源返回 4XX/5XX 或损坏
is_wwwboolean资源所在页面使用 www 子域名
is_httpsboolean资源所在页面使用 HTTPS
is_httpboolean资源所在页面使用 HTTP
is_minifiedboolean脚本或样式表已压缩;适用于 scriptstylesheet
has_subrequestsboolean脚本或样式表额外请求
has_redirectboolean资源存在重定向;适用于 scriptimage
original_size_displayedboolean图片按原始尺寸展示;适用于 image
recursive_canonicalbooleancanonical 形成循环
canonical_chainbooleancanonical 存在多级链路
canonical_to_redirectbooleancanonical 指向重定向页面
canonical_to_brokenbooleancanonical 指向损坏页面
has_links_to_redirectsboolean页面链接指向重定向页面
is_orphan_pageboolean页面没有站链接指向;需要 respect_sitemap=true
is_link_relation_conflictboolean站链接同时存在 dofollow 和 nofollow
from_sitemapboolean资源存在于网站 Sitemap 中

响应示例

json
{
  "version": "0.1.20220627",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.8376 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "07281559-0695-0216-0000-c269be8b7592",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.5123 sec.",
      "cost": 0,
      "result_count": 1,
      "data": {
        "api": "on_page",
        "function": "pages",
        "limit": 3
      },
      "result": [
        {
          "crawl_progress": "finished",
          "crawl_status": {
            "max_crawl_pages": 10,
            "pages_in_queue": 0,
            "pages_crawled": 10,
            "total_items_count": 3,
            "items_count": 3
          },
          "items": [
            {
              "html_page": {
                "resource_type": "html",
                "status_code": 200,
                "location": null,
                "url": "https://example.com/",
                "meta": {
                  "title": "示例网站",
                  "charset": 65001,
                  "follow": true,
                  "description": "示例页面描述",
                  "canonical": "https://example.com/",
                  "internal_links_count": 20,
                  "external_links_count": 5,
                  "images_count": 8,
                  "scripts_count": 12
                },
                "page_timing": {
                  "time_to_interactive": 812,
                  "dom_complete": 812,
                  "largest_contentful_paint": 1200,
                  "first_input_delay": 0,
                  "waiting_time": 180,
                  "duration_time": 350
                },
                "onpage_score": 98.17,
                "broken_resources": false,
                "broken_links": false,
                "duplicate_title": false,
                "duplicate_description": false,
                "checks": {
                  "is_https": true,
                  "is_broken": false,
                  "has_micromarkup": true,
                  "no_h1_tag": false,
                  "high_loading_time": false,
                  "seo_friendly_url": true,
                  "is_orphan_page": false,
                  "from_sitemap": true
                },
                "last_modified": null
              }
            }
          ]
        }
      ]
    }
  ]
}

注意事项

  • result 可能同时正常 HTML 页面、错误页面、重定向页面和资源项目。
  • 部分 checks 字段在创建任务时设置 canonical=true 后返回。
  • is_orphan_page 依赖创建任务时设置 respect_sitemap=true
  • has_misspelling 依赖创建任务时启用 check_spell=true
  • custom_js_response 只有在创建任务时提供 custom_js 才会返回。
  • 当结果 20,000 条时,优使用 search_after_token 分页,请求时。
  • last_modified 没有对应数据时返回 null

实用场景

  • 筛选低分页面:根据 onpage_scorechecks 和页面性能指标定位 SEO 问题页面,优安排技术优化资源。
  • 排查索引与链接问题:使用 is_orphan_pagebroken_linkshas_links_to_redirectscanonical_to_broken 发现孤立页、断链及错误 canonical置。
  • 优化页面加载性能:结合 largest_contentful_paintwaiting_timeduration_timescripts_sizestylesheets_size 识别影响核心网页指标的资源。
  • 治理站重复:通过 duplicate_titleduplicate_descriptionduplicate_content 和一致性字段批量发现重复或主题不匹页面。
  • 建立 SEO 审计报表:利用 metacontentchecksresource_errors 字段生成站点级技术 SEO 问题单,并跟踪修复进度。

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