跳转到主要内容
POST
https://api.aisa.one/apis/v1
/
dataforseo
/
on_page
/
waterfall
OnPage API 瀑布图
curl --request POST \
  --url https://api.aisa.one/apis/v1/dataforseo/on_page/waterfall \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "id": "<string>",
  "url": "<string>",
  "tag": "<string>"
}
'
import requests

url = "https://api.aisa.one/apis/v1/dataforseo/on_page/waterfall"

payload = {
"id": "<string>",
"url": "<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({id: '<string>', url: '<string>', tag: '<string>'})
};

fetch('https://api.aisa.one/apis/v1/dataforseo/on_page/waterfall', 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/on_page/waterfall",
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([
'id' => '<string>',
'url' => '<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/on_page/waterfall"

payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"url\": \"<string>\",\n \"tag\": \"<string>\"\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/on_page/waterfall")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"url\": \"<string>\",\n \"tag\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.aisa.one/apis/v1/dataforseo/on_page/waterfall")

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 \"id\": \"<string>\",\n \"url\": \"<string>\",\n \"tag\": \"<string>\"\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.crawl_progress": "<string>",
  "tasks.result.crawl_status": {},
  "tasks.result.crawl_status.max_crawl_pages": 123,
  "tasks.result.crawl_status.pages_in_queue": 123,
  "tasks.result.crawl_status.pages_crawled": 123,
  "tasks.result.items_count": 123,
  "tasks.result.items": [
    "<string>"
  ],
  "tasks.result.items.page_url": "<string>",
  "tasks.result.items.time_to_interactive": 123,
  "tasks.result.items.dom_complete": 123,
  "tasks.result.items.connection_time": 123,
  "tasks.result.items.time_to_secure_connection": 123,
  "tasks.result.items.request_sent_time": 123,
  "tasks.result.items.waiting_time": 123,
  "tasks.result.items.download_time": 123,
  "tasks.result.items.duration_time": 123,
  "tasks.result.items.fetch_start": 123,
  "tasks.result.items.fetch_end": 123,
  "tasks.result.items.resources": [
    "<string>"
  ],
  "tasks.result.items.resources.resource_type": "<string>",
  "tasks.result.items.resources.url": "<string>",
  "tasks.result.items.resources.initiator": "<string>",
  "tasks.result.items.resources.duration_time": 123,
  "tasks.result.items.resources.fetch_start": 123,
  "tasks.result.items.resources.fetch_end": 123,
  "tasks.result.items.resources.location": {},
  "tasks.result.items.resources.location.line": 123,
  "tasks.result.items.resources.location.offset_left": 123,
  "tasks.result.items.resources.location.offset_top": 123,
  "tasks.result.items.resources.is_render_blocking": true
}

授权

Authorization
string
header
必填

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

请求体

application/json
id
string
必填

任务 ID,必填字段;您可以从 Task POST 端点的响应中获取此 ID。示例:“07131248-1535-0216-1000-17384017ad04”

url
string
必填

页面 URL 必填字段,用于指定要接收计时数据的页面

tag
string

用户定义的任务标识符。可选字段。字符数限制为 255。您可以使用此参数标识任务并将其与结果匹配;您将在响应的 data 对象中找到指定的 tag 值

响应

成功响应

version
string

API 的当前版本

status_code
integer

通用状态码;您可以在此处查看完整的响应码列表。注意:我们强烈建议设计必要的系统来处理相关异常或错误情况

status_message
string

常规信息消息;可在此处查看常规信息消息的完整列表

time
string

执行时间(秒)

cost
number

任务总成本(美元)

tasks_count
integer

tasks 数组中的任务数量

tasks_error
integer

返回错误的 tasks 数组中的任务数量

tasks
string[]

任务数组

tasks.id
string

任务标识符,系统中采用 UUID 格式的唯一任务标识符

tasks.status_code
integer

DataForSEO 生成的任务状态码;范围为:10000-60000;完整响应代码列表可在此处查看

tasks.status_message
string

任务的信息性消息,你可以在此处查看通用信息性消息的完整列表

tasks.time
string

执行时间(秒)

tasks.cost
number

任务成本(美元)

tasks.result_count
integer

结果数组中的元素数量

tasks.path
string[]

URL 路径

tasks.data
object

包含您在 POST 请求中指定的相同参数

tasks.result
string[]

结果数组

tasks.result.crawl_progress
string

抓取会话的状态,可能的值:in_progress、finished

tasks.result.crawl_status
object

抓取会话的详细信息

tasks.result.crawl_status.max_crawl_pages
integer

最大抓取页面数,表示设置任务时指定的 max_crawl_pages 限制

tasks.result.crawl_status.pages_in_queue
integer

当前位于抓取队列中的页面数量

tasks.result.crawl_status.pages_crawled
integer

已抓取页面数

tasks.result.items_count
integer

results 数组中的项目数量

tasks.result.items
string[]

items 数组

tasks.result.items.page_url
string

页面的 URL

tasks.result.items.time_to_interactive
integer

可交互时间(TTI)指标,即用户能够与页面交互所需的时间(以毫秒为单位)

tasks.result.items.dom_complete
integer

资源加载时间;下载页面及其所有子资源所需的时间(以毫秒为单位)

tasks.result.items.connection_time
integer

连接服务器的时间,即与服务器建立连接所需的时间(以毫秒为单位)

tasks.result.items.time_to_secure_connection
integer

建立安全连接的耗时,即与服务器建立安全连接所需的时间(以毫秒为单位)

tasks.result.items.request_sent_time
integer

向服务器发送请求的时间,即请求发送至服务器所需的时间(以毫秒为单位)

tasks.result.items.waiting_time
integer

首字节时间(TTFB),单位为毫秒

tasks.result.items.download_time
integer

浏览器接收响应所需的时间(以毫秒为单位)

tasks.result.items.duration_time
integer

浏览器从服务器接收到完整响应所需的总时间(以毫秒为单位)

tasks.result.items.fetch_start
integer

开始下载 HTML 资源的时间,即浏览器开始下载页面所需的时间

tasks.result.items.fetch_end
integer

完成 HTML 资源下载所需的时间,即浏览器完成页面下载所需的时间

tasks.result.items.resources
string[]

特定于资源的计时信息,包含多个独立数组,分别记录页面上找到的每项资源的计时数据

tasks.result.items.resources.resource_type
string

返回资源的类型

tasks.result.items.resources.url
string

资源 URL

tasks.result.items.resources.initiator
string

资源发起方

tasks.result.items.resources.duration_time
integer

浏览器从服务器接收到完整响应所需的总时间(以毫秒为单位)

tasks.result.items.resources.fetch_start
integer

开始下载资源的时间,即浏览器开始下载资源所需的时间

tasks.result.items.resources.fetch_end
integer

资源下载完成时间,即浏览器完成资源下载所需的时间

tasks.result.items.resources.location
object

资源在文档中的位置,用于定义特定资源在文档 HTML 中位置的参数

tasks.result.items.resources.location.line
integer

行号,即资源所在的行编号

tasks.result.items.resources.location.offset_left
integer

行内位置,即资源之前的行内字符数;有时也称为列;注意:从 1 开始计数,即如果资源左侧没有任何字符,该值将为 1

tasks.result.items.resources.location.offset_top
integer

文档中的位置,即资源与 HTML 顶部之间的字符总数

tasks.result.items.resources.is_render_blocking
boolean

指示资源是否会阻塞渲染