curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"keyword_fields": {
"title": "<string>",
"main_title": "<string>",
"previous_title": "<string>",
"snippet": "<string>"
},
"page_type": [
"<string>"
],
"internal_list_limit": 123,
"positive_connotation_threshold": 123,
"sentiments_connotation_threshold": 123,
"initial_dataset_filters": [
"<unknown>"
],
"rank_scale": "<string>",
"tag": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live"
payload = [
{
"keyword": "<string>",
"keyword_fields": {
"title": "<string>",
"main_title": "<string>",
"previous_title": "<string>",
"snippet": "<string>"
},
"page_type": ["<string>"],
"internal_list_limit": 123,
"positive_connotation_threshold": 123,
"sentiments_connotation_threshold": 123,
"initial_dataset_filters": ["<unknown>"],
"rank_scale": "<string>",
"tag": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
keyword_fields: {
title: '<string>',
main_title: '<string>',
previous_title: '<string>',
snippet: '<string>'
},
page_type: ['<string>'],
internal_list_limit: 123,
positive_connotation_threshold: 123,
sentiments_connotation_threshold: 123,
initial_dataset_filters: ['<unknown>'],
rank_scale: '<string>',
tag: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'keyword_fields' => [
'title' => '<string>',
'main_title' => '<string>',
'previous_title' => '<string>',
'snippet' => '<string>'
],
'page_type' => [
'<string>'
],
'internal_list_limit' => 123,
'positive_connotation_threshold' => 123,
'sentiments_connotation_threshold' => 123,
'initial_dataset_filters' => [
'<unknown>'
],
'rank_scale' => '<string>',
'tag' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks.id": "<string>",
"tasks.status_code": 123,
"tasks.status_message": "<string>",
"tasks.time": "<string>",
"tasks.cost": 123,
"tasks.result_count": 123,
"tasks.path": [
"<string>"
],
"tasks.data": {},
"tasks.result": [
"<string>"
],
"tasks.result.type": "<string>",
"tasks.result.total_count": 123,
"tasks.result.rank": 123,
"tasks.result.top_domains": [
"<string>"
],
"tasks.result.sentiment_connotations": {},
"tasks.result.connotation_types": {},
"tasks.result.text_categories": [
"<string>"
],
"tasks.result.page_categories": [
"<string>"
],
"tasks.result.page_types": {},
"tasks.result.countries": {},
"tasks.result.languages": {}
}内容分析 – 摘要 API
某个关键词在全网被引用情况的聚合视图。
curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"keyword_fields": {
"title": "<string>",
"main_title": "<string>",
"previous_title": "<string>",
"snippet": "<string>"
},
"page_type": [
"<string>"
],
"internal_list_limit": 123,
"positive_connotation_threshold": 123,
"sentiments_connotation_threshold": 123,
"initial_dataset_filters": [
"<unknown>"
],
"rank_scale": "<string>",
"tag": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live"
payload = [
{
"keyword": "<string>",
"keyword_fields": {
"title": "<string>",
"main_title": "<string>",
"previous_title": "<string>",
"snippet": "<string>"
},
"page_type": ["<string>"],
"internal_list_limit": 123,
"positive_connotation_threshold": 123,
"sentiments_connotation_threshold": 123,
"initial_dataset_filters": ["<unknown>"],
"rank_scale": "<string>",
"tag": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
keyword_fields: {
title: '<string>',
main_title: '<string>',
previous_title: '<string>',
snippet: '<string>'
},
page_type: ['<string>'],
internal_list_limit: 123,
positive_connotation_threshold: 123,
sentiments_connotation_threshold: 123,
initial_dataset_filters: ['<unknown>'],
rank_scale: '<string>',
tag: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'keyword_fields' => [
'title' => '<string>',
'main_title' => '<string>',
'previous_title' => '<string>',
'snippet' => '<string>'
],
'page_type' => [
'<string>'
],
'internal_list_limit' => 123,
'positive_connotation_threshold' => 123,
'sentiments_connotation_threshold' => 123,
'initial_dataset_filters' => [
'<unknown>'
],
'rank_scale' => '<string>',
'tag' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"keyword_fields\": {\n \"title\": \"<string>\",\n \"main_title\": \"<string>\",\n \"previous_title\": \"<string>\",\n \"snippet\": \"<string>\"\n },\n \"page_type\": [\n \"<string>\"\n ],\n \"internal_list_limit\": 123,\n \"positive_connotation_threshold\": 123,\n \"sentiments_connotation_threshold\": 123,\n \"initial_dataset_filters\": [\n \"<unknown>\"\n ],\n \"rank_scale\": \"<string>\",\n \"tag\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks.id": "<string>",
"tasks.status_code": 123,
"tasks.status_message": "<string>",
"tasks.time": "<string>",
"tasks.cost": 123,
"tasks.result_count": 123,
"tasks.path": [
"<string>"
],
"tasks.data": {},
"tasks.result": [
"<string>"
],
"tasks.result.type": "<string>",
"tasks.result.total_count": 123,
"tasks.result.rank": 123,
"tasks.result.top_domains": [
"<string>"
],
"tasks.result.sentiment_connotations": {},
"tasks.result.connotation_types": {},
"tasks.result.text_categories": [
"<string>"
],
"tasks.result.page_categories": [
"<string>"
],
"tasks.result.page_types": {},
"tasks.result.countries": {},
"tasks.result.languages": {}
}total_count、rank、top_domains(每项含 domain 和 count)、sentiment_connotations(anger / happiness / love / sadness / share / fun)、connotation_types(positive / negative / neutral)、text_categories、page_categories、page_types、countries 和 languages。单个关键词实测 1.1 KB。响应统一包在 DataForSEO 的信封里——数据在 tasks[0].result,上游扣费在 tasks[0].cost。 这是 content 家族的中枢:post_dataforseo_content_sentiment_analysis_live 返回的两个 connotation 块本接口已经包含,除非你就是要更小的响应体,否则直接用这个。要逐个引用页面而非总数,用 post_dataforseo_content_search_live;要同样的聚合按时间展开,用 post_dataforseo_content_phrase_trends_live。
示例
curl -X POST "https://api.aisa.one/apis/v1/dataforseo/content_analysis/summary/live" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[{"keyword": "...", "keyword_fields": "...", "page_type": "..."}]'
授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
请求体
目标关键词,必填字段,采用 UTF-8 编码。关键词将转换为小写格式;注意:如需匹配完整短语而非独立关键词,请使用双引号和反斜杠;示例:"keyword": ""tesla palo alto""。有关 DataForSEO API 中 keyword 和 keywords 字段的规则与限制,请参阅此帮助中心文章。
目标关键词字段和目标关键词,可选字段。使用此参数可按特定字段应包含的关键词筛选数据集;可指定的字段:title、main_title、previous_title、snippet。您可以指定多个字段;注意:若要匹配完整短语而非独立关键词,请使用双引号和反斜杠;示例:"keyword_fields": { "snippet": ""logitech mouse"", "main_title": "sale" }
Show child attributes
Show child attributes
目标页面类型,可选字段。使用此参数按页面类型筛选数据集;可能的值:"ecommerce"、"news"、"blogs"、"message-boards"、"organization"
内部数组中的最大元素数量,可选字段;你可以使用此字段限制以下数组中的元素数量:top_domains、text_categories、page_categories、countries、languages;默认值:1;最大值:20
正面倾向阈值。可选字段。指定为与引用内容相关的正面情感概率指数阈值。如果指定此字段,响应中的 connotation_types 对象将仅包含正面情感概率大于或等于指定值的引用数据。可选值:0 到 1。默认值:0.4
情感内涵阈值,可选字段。指定为与引用内容相关的情感内涵概率指数阈值。如果指定此字段,响应中的 sentiment_connotations 对象将仅包含各项情感概率大于或等于指定值的引用数据。可选值:0 到 1。默认值:0.4
初始数据集过滤参数,可选字段。应用于 Search 端点中字段的初始过滤参数。可以同时添加多个过滤器(最多 8 个)。应在条件之间设置逻辑运算符 and、or。支持以下运算符:regex、not_regex、 、 、>、>=、=、 、in、not_in、like、not_like、has、has_not。可以将 % 运算符与 like 和 not_like 配合使用,以匹配由零个或多个字符组成的任意字符串。示例:["domain","", "logitech.com"] [["domain","","logitech.com"],"and",["content_info.connotation_types.negative",">",1000]] [["domain","","logitech.com"]], "and", [["content_info.connotation_types.negative",">",1000], "or", ["content_info.text_category","has",10994]]]。有关过滤器的更多信息,请参阅 Content Analysis API – Filters;有关初始数据集过滤器的更多信息,请参阅此帮助中心文章。
定义用于计算和显示排名值的刻度,可选字段。您可以使用此参数选择以 0–100 还是 0–1000 刻度显示排名值。可选值:one_hundred — 以 0–100 刻度显示排名值;one_thousand — 以 0–1000 刻度显示排名值。默认值:one_thousand。有关此参数工作原理的更多信息,请参阅此帮助中心文章。
用户定义的任务标识符。可选字段。字符数限制为 255。您可以使用此参数标识任务并将其与结果匹配;您将在响应的 data 对象中找到指定的 tag 值
响应
成功响应
API 的当前版本
通用状态码;您可以在此处查看完整的响应码列表。注意:我们强烈建议设计必要的系统来处理相关异常或错误情况
常规信息消息;可在此处查看常规信息消息的完整列表
执行时间(秒)
任务总成本(美元)
tasks 数组中的任务数量
返回错误的 tasks 数组中的任务数量
任务数组
任务标识符,系统中采用 UUID 格式的唯一任务标识符
DataForSEO 生成的任务状态码;范围为:10000-60000;完整响应代码列表可在此处查看
任务的信息性消息,你可以在此处查看通用信息性消息的完整列表
执行时间(秒)
任务成本(美元)
结果数组中的元素数量
URL 路径
包含您在 POST 请求中指定的相同参数
结果数组
元素类型 = ‘content_analysis_summary’
数据库中与您的请求相关的结果总量
引用该关键词的所有 URL 的排名,即引用目标关键词的所有 URL 排名的归一化总和
引用目标关键词的热门域名,包含引用目标关键词的热门域名对象以及每个域名的引用次数
sentiment connotations 包含与目标关键词引用相关的情绪(情感反应),以及每种情绪对应的引用数量。可能的 sentiment connotations:anger、happiness、love、sadness、share、fun
内涵类型,包含与关键词引用相关的情感类型(情感极性),以及每种情感类型的引用次数;可能的情感内涵类型:positive、negative、neutral
文本类别,包含由文本类别及各类别引用次数组成的对象。如需获取所有可用类别的完整列表,请参阅 Categories 端点
页面类别,包含由页面类别以及各页面类别中的引用次数构成的对象。如需获取所有可用类别的完整列表,请参阅 Categories 端点
页面类型,包含各页面类型及其引用次数
countries 包含各个国家及其引用次数;如需获取完整的可用国家列表,请参阅 Locations 端点。
languages 包含各种语言及每种语言的引用次数;要获取可用语言的完整列表,请参阅 Languages 端点