Skip to content

页面交集分析(旧版)实时接口

接口说明

注意:本接口为旧版 Page Intersection 接口。平台 API 已于 2022-03-19 更新了 本平台 Labs 请求与响应结构,但当前文档所述旧版接口仍持续容可用。 如需新版结构,请参考对应新版接口文档。

该接口用于查询:多个指定页面在同一搜索结果页(SERP)中排名的

对于每个交集,返回的数据:

  • 搜索量
  • 竞争度
  • 平均点击成本(CPC)
  • 展现量(Impressions)
  • SERP素数据
  • 预估自然流量
  • 预估广告流量成本

支持的结果类型:

  • organic
  • paid
  • local_pack
  • featured_snippet

型用途

1)找出多个页面排名的 只传 pages 对象即可。接口将返回这些 URL 在同一 SERP 中覆盖的。

2)找出竞争对手覆盖、但你未覆盖的 同时传 pagesexclude_pages。接口将返回:pages 中 URL 有排名、但 exclude_pages 中 URL 没有排名的。

请求地址

POST https://api.seermartech.cn/v3/dataforseo_labs/page_intersection/live

计费说明

按请求计费。 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

调用限制

  • 请求体为 UTF-8 编码的 JSON
  • POST 请求体格式为 JSON 数组:[{ ... }]
  • 每分钟最多可发送 2000 次 API 调用
  • 支持通过 limitorder_by 控制返回数量与排序

请求参数

顶层参数说明

字段名类型说明
pagesobject。目标页面 URL 集合,最多可传 20 个页面。使用绝对 URL( http://https://)。例如:"1": "https://www.apple.com/mac/*"
exclude_pagesarray可选。要排除的页面 URL,最多 10 个。如果设置该字段,结果会返回 pages 中 URL 有排名、但 exclude_pages 中 URL 没有排名的。
location_namestring当未提供 location_code 时填。位置完整名称,例如:United Kingdom
location_codeinteger当未提供 location_name 时填。位置编码,例如:2840
language_namestring当未提供 language_code 时填。语言完整名称,例如:English
language_codestring当未提供 language_name 时填。语言代码,例如:en
item_typesarray可选。要在响应中的搜索结果类型。
limitinteger可选。返回的最大数量。默认 100,最大 1000
offsetinteger可选。结果偏移量,默认 0。例如传 10 时,将跳过前 10 个结果。
include_subdomainsboolean可选。是否子域名。默认 true;设为 false 时忽略子域名。
intersection_modestring可选。交集计算方式。可选值:unionintersect
include_serp_infoboolean可选。是否返回每个对应的 serp_info 数据。默认 false
filtersarray可选。结果过滤条件数组,最多支持 8 个过滤条件
order_byarray可选。排序规则,最多支持 3 条排序规则
tagstring可选。自定义任务标识,最大长度 255 字符。会原样返回到响应 data 中。

重点参数说明

pages

  • 最多 20 个页面
  • 使用对象形式传值,如:
json
{
 "pages": {
 "1": "https://www.apple.com/mac/*",
 "2": "https://example.com/blog/*",
 "3": "https://support.microsoft.com/"
 }
}

URL 匹规则

  • "https://example.com/page":匹精确 URL
  • "https://example.com/eng/*":匹该路径下所有以 /eng/ 开头的 URL

通符使用限制

通符 *须放在 URL 末尾的 / 后面。

正确示例:

https://example.com/*

错误示例:

https://example.com*

注意:如果交集数量 1000 万,本接口将不返回结果。

exclude_pages

  • 最多 10 个页面
  • 支持通符 *
  • 如果设置该字段:
  • 默认按 union 模式处理,即基于 pages任意一个 URL 有排名的
  • 如需返回 pages所有 URL 都排名、且 exclude_pages 未排名的,请将 intersection_mode 设为 intersect

location_name / location_code

二选一填。 位置与语言列表可通过以下接口获取:

/v3/dataforseo_labs/locations_and_languages

language_name / language_code

二选一填。 语言与位置列表同样可通过以下接口获取:

/v3/dataforseo_labs/locations_and_languages

item_types

表示响应中的搜索结果类型。支持以下值:

  • organic
  • paid
  • featured_snippet
  • local_pack

intersection_mode

可选值:

  • union:基于 pages任意 URL 有排名的
  • intersect:基于 pages所有 URL 都在同一 SERP 中有排名的

默认规则:

  • pages 时,默认使用 intersect
  • 同时传 pagesexclude_pages 时,默认使用 union

include_serp_info

设为 true 时,响应中每个都会返回 serp_info,:

  • 搜索结果直达检查链接
  • SERP 中出现的结果类型
  • 搜索结果总数
  • 难度
  • SERP 数据更新时间

filters

  • 最多支持 8 个过滤条件
  • 条件之间可用 andor
  • 支持操作符:
  • <
  • <=
  • >
  • >=
  • =
  • <>
  • in
  • not_in
  • like
  • not_like

likenot_like 支持 % 通任意长度字符串。

过滤 intersection_result 的注意事项

如果要按 intersection_result 中某个页面的数据过滤,需要指定对应页面编号。

例如:

  • 过滤第一个页面的排名
  • 过滤第三个页面是否为自然结果

过滤语法请参考平台过滤器文档。

order_by

可使用与 filters 相同的字段路径进行排序。

排序方向:

  • asc:升序
  • desc:降序

默认排序规则:以平台 API 默认行为为准。 单次请求最多设置 3 条排序规则


请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/page_intersection/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "pages": {
 "1": "https://example.com/*",
 "2": "https://ahrefs.com/*"
 },
 "language_name": "English",
 "location_code": 2840,
 "limit": 3
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/dataforseo_labs/page_intersection/live"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

data = [
 {
 "pages": {
 "1": "https://example.com/*",
 "2": "https://ahrefs.com/*"
 },
 "location_name": "United States",
 "language_name": "English",
 "limit": 3
 }
]

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

TypeScript

typescript
import axios from "axios";

const postArray = [
 {
 pages: {
 "1": "https://example.com/*",
 "2": "https://ahrefs.com/*"
 },
 language_name: "English",
 location_code: 2840,
 limit: 3
 }
];

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

响应结构

接口返回 JSON,顶层 tasks 数组。

顶层响应字段

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

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码
status_messagestring任务状态信息
timestring任务执行耗时
costfloat单任务成本,单位 USD
result_countintegerresult 数组中的数
patharray接口路径
dataobject与请求中提交参数一致
resultarray获取结果数组

result[] 字段

字段名类型说明
pagesobject请求中提交的页面
exclude_pagesarray请求中提交的排除页面
location_codeinteger请求中的位置编码
language_codestring请求中的语言编码
total_countinteger数据库中命中的总结果数
items_countinteger当前 items 返回数量
itemsarray及 SERP/流量数据

items[] 结果项说明

每个 items[] 代表一个交集结果,主要由两部分组成:

  • keyword_data:及指标数据
  • intersection_result:每个指定页面在该下的排名结果

keyword_data

字段名类型说明
keywordstring返回的
location_codeinteger位置编码
language_codestring语言代码
keyword_infoobject基础指标
impressions_infoobject展现量指标
bing_keyword_infoobject基于 Bing Ads 的数据,覆盖范围有限
serp_infoobjectSERP 信息;若未开启 include_serp_info=true,则可能为 null

keyword_info

字段名类型说明
last_updated_timestring数据更新时间,UTC
competitionfloat竞争度,范围 0~1
cpcfloat历史平均点击成本,单位 USD
search_volumeinteger月均搜索量
categoriesarray产品与服务分类
monthly_searchesarray过去 12 个月的月度搜索量

monthly_searches[]

字段名类型说明
yearinteger
monthinteger
search_volumeinteger当月搜索量

impressions_info

该对象提供比传统搜索量更细的展现量估算指标,使用 999 出价作为统一基准,以降低账号差异带来的影响。

字段名类型说明
last_updated_timestring展现量数据更新时间,UTC
bidinteger最大 CPC 出价,固定基准值通常为 999
match / match_typestring匹类型:exactbroadphrase
ad_position_minfloat广告最小位置
ad_position_maxfloat广告最大位置
ad_position_averagefloat广告平均位置
cpc_minfloat基准模型下最小 CPC(非真实 CPC)
cpc_maxfloat基准模型下最大 CPC(非真实 CPC)
cpc_averagefloat基准模型下平均 CPC(非真实 CPC)
daily_impressions_minfloat最小日展现量
daily_impressions_maxfloat最大日展现量
daily_impressions_averagefloat平均日展现量
daily_clicks_minfloat最小日点击量
daily_clicks_maxfloat最大日点击量
daily_clicks_averagefloat平均日点击量
daily_cost_minfloat最小日花费,单位 USD
daily_cost_maxfloat最大日花费,单位 USD
daily_cost_averagefloat平均日花费,单位 USD

注意:cpc_mincpc_maxcpc_average 为基于 bid=999 的估算值,不代表真实 CPC。真实 CPC 请看 keyword_info.cpc

bing_keyword_info

字段名类型说明
last_updated_timestring更新时间,UTC
search_volumeintegerBing 最近一个月搜索量
monthly_searchesarray月度 Bing 搜索量

serp_info

字段名类型说明
check_urlstring搜索引擎结果直达链接,可用于核验
serp_item_typesarraySERP 中发现的结果类型
se_results_countstring搜索结果总数
keyword_difficultyinteger难度,0~100
last_updated_timestring最近一次 SERP 更新时间
previous_updated_timestring上一次 SERP 更新时间

serp_item_types 可能:

  • answer_box
  • app
  • carousel
  • multi_carousel
  • featured_snippet
  • google_flights
  • google_reviews
  • images
  • jobs
  • knowledge_graph
  • local_pack
  • map
  • organic
  • paid
  • people_also_ask
  • related_searches
  • people_also_search
  • shopping
  • top_stories
  • twitter
  • video
  • events
  • mention_carousel
  • recipes
  • top_sights
  • scholarly_articles
  • popular_products
  • podcasts
  • questions_and_answers
  • find_results_on
  • stocks_box

但本接口返回可解析的目标结果:organicpaidfeatured_snippetlocal_pack


intersection_result

intersection_result 用于描述:针对当前,你在 pages 中提交的每个 URL 分别在 SERP 中出现了什么结果。

  • 每个页面按编号返回,如 123
  • 最多可到 20
  • 每个编号对应一个 SERP素对象
  • 支持的类型:
  • organic
  • paid
  • local_pack
  • featured_snippet

各 SERP素字段说明

1)organic 自然结果

字段名类型说明
typestring固定为 organic
rank_groupinteger同类型结果组排名
rank_absoluteintegerSERP部中的绝对排名
positionstring展示位置:leftright
xpathstring素 XPath
domainstring结果子域名
titlestring标题
urlstring落地 URL
breadcrumbstring面屑
is_imageboolean是否图片
is_videoboolean是否视频
is_featured_snippetboolean是否同时为精选摘要
is_maliciousboolean是否被标记为恶意
descriptionstring描述文本
pre_snippetstring描述前附加信息
extended_snippetstring描述后附加信息
amp_versionboolean是否有 AMP 版本
ratingobject评分信息
highlightedarray描述中高亮加粗的词
linksarraySitelinks,若无则为 null
main_domainstring主域名
relative_urlstring相对路径
etvfloat预估自然月流量
impressions_etvfloat基于展现量的预估自然月流量
estimated_paid_traffic_costfloat若用广告获取同等流量的预估月成本(USD)
rank_changesobject相比上一次抓取的排名变化

rating

字段名类型说明
rating_typestringMax5PercentsCustomMax
valueinteger评分值
votes_countinteger评价数
rating_maxinteger满分值
字段名类型说明
typestring固定为 link_element
titlestring链接标题
descriptionstring链接描述
urlstringSitelink URL

rank_changes

字段名类型说明
previous_rank_absoluteinteger上次绝对排名;新结果则可能为 null
is_newboolean是否为新出现结果
is_upboolean排名是否上升
is_downboolean排名是否下降

2)paid 付费结果

字段名类型说明
typestring固定为 paid
rank_groupinteger同类型组排名
rank_absoluteinteger绝对排名
positionstringleftright
xpathstring素 XPath
titlestring广告标题
domainstring广告域名
descriptionstring描述
breadcrumbstring广告面屑
urlstring广告目标 URL
highlightedarray加粗
extraarray额外信息
ad_aclkstring广告标识
description_rowsarray扩展描述;无则为 null
linksarray广告附加链接;无则为 null
main_domainstring主域名
relative_urlstring相对路径
etvfloat预估流量
impressions_etvfloat基于展现量的预估流量
estimated_paid_traffic_costfloat预估付费月流量成本(USD)
rank_changesobject排名变化
字段名类型说明
typestring固定为 ad_link_element
titlestring链接标题
descriptionstring链接描述
urlstring链接 URL
ad_aclkstring广告标识

3)local_pack 本地结果

字段名类型说明
typestring固定为 local_pack
rank_groupinteger同类型组排名
rank_absoluteinteger绝对排名
positionstringleftright
xpathstring素 XPath
titlestring标题
descriptionstring描述
domainstring域名
phonestring电话
urlstringURL
is_paidboolean是否广告
ratingobject评分信息
main_domainstring主域名
relative_urlstring相对路径
etvfloat预估流量
impressions_etvfloat基于展现量的预估流量
estimated_paid_traffic_costfloat若通过广告获取同等流量的预估成本(USD)
rank_changesobject排名变化

字段名类型说明
typestring固定为 featured_snippet
rank_groupinteger同类型组排名
rank_absoluteinteger绝对排名
positionstringleftright
xpathstring素 XPath
domainstring域名
titlestring标题
featured_titlestring精选摘要来源页标题
descriptionstring描述
urlstringURL
tablearray表格结果,无则为 null
about_this_resultobject“此结果”面板信息
main_domainstring主域名
relative_urlstring相对路径
etvfloat预估流量
impressions_etvfloat基于展现量的预估流量
estimated_paid_traffic_costfloat获取同等流量的预估广告成本(USD)
rank_changesobject排名变化

table[]

字段名类型说明
table_headerarray列名
table_contentarray表格,每个代表一行

about_this_result

字段名类型说明
typestring固定为 about_this_result_element
urlstring结果 URL
sourcestring额外信息来源
source_infostring来源说明
source_urlstring来源链接
languagestring结果语言
locationstring结果适用地区
search_termsarray命中的搜索词
related_termsarray搜索词

响应示例

json
{
 "version": "0.1.20210430",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.5750 sec.",
 "cost": 0.0103,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "dataforseo_labs",
 "function": "page_intersection",
 "pages": {
 "1": "https://example.com",
 "2": "https://ahrefs.com/*"
 },
 "location_code": "2840",
 "language_name": "English",
 "limit": 3
 },
 "result": [
 {
 "items": [
 {
 "keyword_data": {
 "keyword": "google trends dataset",
 "location_code": 2840,
 "language_code": "en",
 "serp_info": {
 "check_url": "https://www.google.com/search?q=google%20trends%20dataset&num=100&hl=en&gl=US",
 "se_results_count": 102000000,
 "keyword_difficulty": 47,
 "last_updated_time": "2021-04-16 05:38:42 +00:00",
 "previous_updated_time": "2021-03-17 04:38:41 +00:00"
 }
 },
 "intersection_result": {
 "1": {
 "type": "organic",
 "rank_group": 58,
 "rank_absolute": 59,
 "domain": "example.com",
 "title": "示例页面标题",
 "url": "https://example.com/",
 "etv": 1.8480000495910645,
 "estimated_paid_traffic_cost": 5.336818695068359
 },
 "2": {
 "type": "organic",
 "rank_group": 18,
 "rank_absolute": 19,
 "domain": "ahrefs.com",
 "title": "How to Use Google Trends for Keyword Research",
 "url": "https://ahrefs.com/blog/how-to-use-google-trends-for-keyword-research/",
 "etv": 2.9040000438690186,
 "estimated_paid_traffic_cost": 8.386429786682129
 }
 }
 }
 ]
 }
 ]
 }
 ]
}

状态码与错误处理

  • 顶层 status_code 表示整个请求状态
  • tasks[].status_code 表示单个任务状态
  • 建议同时处理 HTTP 错误与业务状态码
  • 错误码完整列表请参考 /v3/appendix/errors

常见成功状态:

  • 20000:请求成功

使用建议

  1. 做页面重合分析时优使用 intersect 如果你要判断多个页面真正覆盖哪些,建议传 pages 或显式指定 intersection_mode: "intersect"

  2. 做竞争对手缺口分析时结合 exclude_pages 可将竞品页面放 pages,自家页面放 exclude_pages,找出竞品覆盖而你未覆盖的词。

  3. 需要核验 SERP 时开启 include_serp_info 这样可获得 check_url 和难度等信息,便于运营或分析师复核结果。

  4. 控制大结果集的分页读取 使用 limit + offset 分页抓取,一次读取过多数据。

  5. 结果集过大可能无返回 若交集 1000 万,本接口不会返回结果,建议缩小页面范围或增加过滤条件。

实用场景

  • 筛选排名词:比较多个落地页或多个竞品页面的覆盖,识别同赛道核心主题与重叠区域。
  • 挖掘缺口:将竞品页面放 pages、自家页面放 exclude_pages,找出“对方有排名、我方没有”的高价值词,指导补齐。
  • 评估页面竞争强度:结合 keyword_info.competitioncpckeyword_difficulty,判断交集词是否值得 SEO 或 PPC 资源。
  • 识别 SERP 占位类型:分析页面在 organicpaidfeatured_snippetlocal_pack 中的表现,制定更精准的与结构化优化策略。
  • 估算流量与替代投放成本:利用 etvimpressions_etvestimated_paid_traffic_cost 评估某批的自然流量价值,为预算分和 ROI 分析提供依据。

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