全平台抓取 API 性能实测:从搜索到电商社交,5 大平台硬指标全解析
长期做海外数据采集的开发从业者应该清楚,现阶段行业内并没有一套能够通吃全平台的采集解决方案。常规业务模式下,技术团队需要单独对接搜索、电商、社交不同赛道的抓取服务商,单独维护多套密钥、接口适配层、异常处理逻辑。这种碎片化的接入方式,不仅会拉高开发接入成本,后续运维、问题排查、版本迭代的隐性成本同样居高不下。近期Dataify推出一体化统一抓取API,官方核心卖点十分直白:过简单的 API 调用,即
一、测评简介
1.1 测评背景
长期做海外数据采集的开发从业者应该清楚,现阶段行业内并没有一套能够通吃全平台的采集解决方案。常规业务模式下,技术团队需要单独对接搜索、电商、社交不同赛道的抓取服务商,单独维护多套密钥、接口适配层、异常处理逻辑。这种碎片化的接入方式,不仅会拉高开发接入成本,后续运维、问题排查、版本迭代的隐性成本同样居高不下。
近期Dataify推出一体化统一抓取API,官方核心卖点十分直白:过简单的 API 调用,即可获取来自搜索引擎、社交媒体、电商和视频平台的数据,为 AI 与商业分析提供数据支持。
从架构层面来看,这种统一封装的模式,确实能从根源上简化多平台采集业务的开发架构。但市面上多数聚合类API普遍存在“宣传大于实际”的问题,纸面参数无法等同于生产环境表现。基于此,我设计了一套标准化、可完整复现的测试方案,全方位实测该API各平台的响应延迟、成功率、数据质量与稳定性,客观剖析其实际落地价值与现存短板。
1.2 测评定位
本次测评结合标准化测试流程,全方位测评Dataify一体化采集API的综合性能与落地价值。从延迟、成功率、数据质量、稳定性多个维度做完整量化测试,全部的样本参数、压测脚本、测试日志全部开源可复现。全篇内容基于真实实测数据客观撰写,旨在给有海外数据采集需求的开发者、技术团队,提供一份高参考价值的选型指南。
二、测试范围
2.1 核心验证方向
本次测试核心围绕两大维度展开:其一,验证Dataify统一API的封装能力,判断单接口适配多平台的模式,是否能够真正降低多业务场景的接入与运维成本;其二,拆解不同平台接口的底层调用逻辑,分析同步、异步两种调用模式的适配场景、优缺点,帮助开发者明确该API适配的业务规模与线上环境。
2.2 覆盖测试平台
结合海外数据采集行业高频业务场景,本次筛选5个具备行业代表性的主流平台,全覆盖三大核心采集赛道,基本囊括绝大多数海外采集业务需求:
- 全网搜索类:Google、Bing,适配舆情监控、关键词检索、行业情报采集等轻量化高频场景
- 跨境电商类:Amazon,聚焦商品价格监控、竞品数据分析、货源挖掘等商业化核心场景
- 海外社交类:YouTube视频检索、Facebook公共主页抓取,覆盖短视频内容采集、社媒账号舆情分析场景
三、测试方案
3.1 测试样本规划
在采集业务中,检索关键词的冷热程度,会直接影响接口成功率与响应延迟。为规避单一样本带来的数据偏差,保证测评结果具备普适性,本次测试平台均采用「冷热样本对半分配」的采样策略,详细配置如下:
- Google / Bing:单平台配置50组检索样本,25组行业热门通用词、25组小众长尾冷词,覆盖AI科技、财经、民生教育、复古小众品类等多个业务领域
- Amazon:50组商品检索关键词,兼顾3C数码、家居办公等热销品类,以及老式配件、复古器械等冷门品类,冷热样本各25组
- YouTube:50组视频检索词,覆盖教程、纪实、娱乐等主流内容赛道,同时搭配复古影视、老旧纪录片等小众检索词,均衡分配冷热样本
- Facebook:受业务特性限制,选取25个海外正规公开官方主页链接为测试样本,涵盖媒体、科技企业、科研机构三类主体,仅校验静态主页数据抓取能力
3.2 量化指标定义
参考线上生产环境采集服务的通用考核标准,本次测试定义三大核心量化指标,从稳定性、响应性能、数据质量三个维度,完整评估API综合服务能力:
- 抓取成功率:计算公式 (总请求数-失败请求数)/总请求数。统一将HTTP状态异常、业务层API报错、请求超时、数据解析失败四类场景,判定为请求失败,对齐生产环境报错判定逻辑
- 有效数据率:针对成功请求做二次筛选,统计返回非空结构化业务数据的请求占比,用于剔除“接口请求成功,但无可用业务数据”的无效请求,规避表面数据误导
- 延迟指标体系:统计平均延迟、P50中位数延迟、P90高分位延迟、最大/最小响应延迟。单一平均延迟参考价值有限,多维度分位延迟,才能真实反映不同场景下的接口抗压能力
3.3 测试执行规则
为还原线上真实运行状态,杜绝测试环境优化偏差,本次压测强制执行以下约束规则,平台统一标准、无特殊差异化配置:
- 全局关闭自动重试机制:单次请求失败直接归档标记,不做二次补发重试。该规则贴合绝大多数生产环境的请求判定逻辑,数据参考价值更高
- 统一失败判定口径:超时、网络异常、HTTP报错、业务报错、数据解析异常,任意一项触发即判定为请求失败
- 标准化数据统计维度:全平台统一采集总请求数、成功/失败数、各类延迟数据、错误类型分布,方便后续横向对比分析
3.4 接口调用模式解析
经过全平台实测可以明确:Dataify并非接口均采用同一种调用逻辑,官方根据平台特性划分同步、异步两种架构。两种模式适配场景差异较大,开发者接入前必须区分清楚,避免业务架构设计出错:
- 同步接口(Google、Bing):适用于低延迟需求业务。通过POST发起检索请求后,接口可即时返回标准化结构化数据,开发侧无需跳转后台、无需二次请求,直接解析存储即可投入业务使用,接入链路简单、开发成本低
- 异步接口(Amazon、YouTube、Facebook):适用于离线批量采集业务。客户端发起请求后,仅返回一个任务ID,不会同步返回原始数据。开发者需登录官方后台,通过任务ID在任务列表中下载、导出采集数据。该模式无法支撑实时业务,仅适配非即时性的数据采集需求

完整压测测试代码
下述Python脚本为本次测评原生使用版本,内置批量发请求、延迟统计、错误分类、日志导出、冷热词区分统计全套功能。开发者替换私有API Token后,可一键复现本次测试流程与数据:
#api压测.py
import requests
import concurrent.futures
import json
import argparse
import time
import logging
import sys
import os
from typing import Dict, List, Any, Tuple
# 设置标准输出为UTF-8(Windows兼容)
if sys.platform == 'win32':
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[logging.StreamHandler()]
)
logger = logging.getLogger(__name__)
# API配置
BASE_REQUEST_URL = "https://scraperapi.dataify.com/request"
BASE_BUILDER_URL = "https://scraperapi.dataify.com/builder"
HEADERS = {
"Authorization": "Bearer 你的api Token",
"Content-Type": "application/x-www-form-urlencoded",
}
# 测试关键词配置(中文)
TEST_KEYWORDS = {
"google": [
("人工智能", True), ("笔记本", True), ("iPhone", True),
("机器学习", True), ("气候变化", True), ("股市", True),
("旅游", True), ("医疗", True), ("远程办公", True),
("AI", True), ("加密货币", True), ("智能手机", True),
("能源", True), ("太空", True), ("在线教育", True),
("智能家居", True), ("电动汽车", True), ("流媒体", True),
("网络安全", True), ("云计算", True), ("5G", True),
("区块链", True), ("元宇宙", True), ("量子计算", True),
("健身", True),
("古董相机", False), ("诗歌", False),
("怀表", False), ("手稿", False),
("打字机", False), ("植物版画", False),
("旧地图", False), ("无线电", False),
("显微镜", False), ("装订", False),
("胶片相机", False), ("天文仪器", False),
("医疗设备", False), ("集邮", False),
("缝纫机", False), ("旧报纸", False),
("钟表", False), ("矿物", False),
("留声机", False), ("军服", False),
("玻璃瓶", False), ("观鸟", False),
("自行车", False), ("明信片", False),
("娃娃屋", False),
],
"bing": [
("科技", True), ("笔记本", True), ("三星", True),
("数据科学", True), ("气候", True), ("投资", True),
("旅游", True), ("医学", True), ("办公", True),
("AI", True), ("比特", True), ("安卓", True),
("太阳能", True), ("NASA", True), ("在线课程", True),
("智能家居", True), ("汽车", True), ("Netflix", True),
("隐私", True), ("软件", True), ("物联网", True),
("NFT", True), ("虚拟现实", True), ("聊天机器人", True),
("减肥", True),
("收音机", False), ("油画", False),
("书籍", False), ("邮票", False),
("相机", False), ("地图", False),
("钟表", False), ("植物", False),
("打字机", False), ("家具", False),
("硬币", False), ("鸟类", False),
("海报", False), ("建筑", False),
("乐器", False), ("矿物", False),
("留声机", False), ("瓷器", False),
("望远镜", False), ("昆虫", False),
("珠宝", False), ("武器", False),
("地毯", False), ("书籍", False),
],
"amazon": [
("无线蓝牙耳机 2026", True), ("智能手表 2026", True), ("笔记本电脑支架", True),
("机械键盘", True), ("4K显示器", True), ("便携充电宝", True),
("无线充电器", True), ("蓝牙音箱", True), ("电子书阅读器", True),
("智能家居摄像头", True), ("空气净化器", True), ("咖啡机", True),
("电动牙刷", True), ("智能门锁", True), ("运动水壶", True),
("旅行背包", True), ("办公椅", True), ("台灯", True),
("数据线", True), ("手机壳", True), ("鼠标", True),
("U盘", True), ("耳机架", True), ("显示器增高架", True),
("收纳盒", True),
("古董打字机零件", False), ("老式相机胶片", False),
("复古计算器", False), ("机械钟表零件", False),
("老式收音机配件", False), ("古董显微镜", False),
("复古钢笔", False), ("手工装订工具", False),
("老式电话配件", False), ("古董望远镜", False),
("稀有植物种子", False), ("手工皮革工具", False),
("复古缝纫机零件", False), ("老式留声机配件", False),
("古董测量仪器", False), ("手工造纸工具", False),
("老式印刷机零件", False), ("稀有矿石标本", False),
("手工玻璃吹制工具", False), ("复古自行车配件", False),
("古董乐器配件", False), ("手工陶瓷工具", False),
("老式医疗器械", False), ("稀有书籍装订", False),
],
"youtube": [
("Python tutorial", True), ("AI tutorial", True), ("fitness", True),
("cooking", True), ("travel vlog", True), ("gaming", True),
("movie review", True), ("music video", True), ("news", True),
("tech review", True), ("animation", True), ("study tips", True),
("recipe", True), ("car review", True), ("real estate", True),
("pets", True), ("DIY", True), ("history documentary", True),
("business analysis", True), ("psychology", True), ("photography", True),
("painting", True), ("coding challenge", True), ("comedy", True),
("nature documentary", True),
("1970s TV show", False), ("film restoration", False),
("concert recording", False), ("historical news", False),
("vintage commercial", False), ("rare animation", False),
("sports history", False), ("old documentary", False),
("interview video", False), ("1980s music video", False),
("variety show", False), ("historical speech", False),
("educational film", False), ("vintage cartoon", False),
("award ceremony", False), ("live concert", False),
("old TV series", False), ("documentary", False),
("live music", False), ("commercial review", False),
("conference recording", False), ("rare movie clip", False),
],
"facebook": [
("https://www.facebook.com/8world.stories", True), ("https://www.facebook.com/bbcnews", True),
("https://www.facebook.com/cnn", True), ("https://www.facebook.com/reuters", True),
("https://www.facebook.com/natgeo", True), ("https://www.facebook.com/techcrunch", True),
("https://www.facebook.com/espn", True), ("https://www.facebook.com/nasa", True),
("https://www.facebook.com/nationalgeographic", True), ("https://www.facebook.com/ted", True),
("https://www.facebook.com/spotify", True), ("https://www.facebook.com/netflix", True),
("https://www.facebook.com/apple", True), ("https://www.facebook.com/google", True),
("https://www.facebook.com/microsoft", True), ("https://www.facebook.com/amazon", True),
("https://www.facebook.com/facebook", True), ("https://www.facebook.com/instagram", True),
("https://www.facebook.com/twitter", True), ("https://www.facebook.com/youtube", True),
("https://www.facebook.com/tiktok", True), ("https://www.facebook.com/linkedin", True),
("https://www.facebook.com/pinterest", True), ("https://www.facebook.com/reddit", True),
("https://www.facebook.com/whatsapp", True),
],
}
def single_request(platform: str, keyword: str, custom_url: str = None) -> Dict[str, Any]:
"""
发送单个API请求
"""
start_time = time.time()
result = {
"platform": platform,
"keyword": keyword,
"success": False,
"latency_ms": 0,
"error_type": None,
"error_message": None,
"valid_data": False,
"response_data": None
}
try:
if platform == "google":
data = {
"engine": "google",
"q": keyword,
"json": "1",
"google_domain": "google.com",
"gl": "cn",
"hl": "zh-cn",
"device": "desktop"
}
response = requests.post(BASE_REQUEST_URL, headers=HEADERS, data=data, timeout=60)
elif platform == "bing":
data = {
"engine": "bing_news",
"q": keyword,
"json": "1",
"device": "desktop"
}
response = requests.post(BASE_REQUEST_URL, headers=HEADERS, data=data, timeout=60)
elif platform == "amazon":
# Amazon使用keyword方式
if custom_url:
data = {
"spider_name": "amazon.com",
"spider_id": "amazon_product_by-url",
"spider_parameters": f'[{{"url":"{custom_url}"}}]',
"spider_errors": "true",
"file_name": "{{TasksID}}"
}
else:
data = {
"spider_name": "amazon.com",
"spider_id": "amazon_product_by-keywords",
"spider_parameters": f'[{{"keyword":"{keyword}"}}]',
"spider_errors": "true",
"file_name": "{{TasksID}}"
}
response = requests.post(BASE_BUILDER_URL, headers=HEADERS, data=data, timeout=60)
elif platform == "youtube":
# YouTube使用keyword方式
if custom_url:
data = {
"spider_name": "youtube.com",
"spider_id": "youtube_video-post_by-url",
"spider_parameters": f'[{{"url":"{custom_url}"}}]',
"spider_errors": "true",
"file_name": "{{TasksID}}"
}
else:
data = {
"spider_name": "youtube.com",
"spider_id": "youtube_video-post_by-keyword",
"spider_parameters": f'[{{"keyword":"{keyword}","num_of_posts":"10"}}]',
"spider_errors": "true",
"file_name": "{{TasksID}}"
}
response = requests.post(BASE_BUILDER_URL, headers=HEADERS, data=data, timeout=60)
elif platform == "facebook":
# Facebook采集个人主页,keyword本身就是URL
facebook_url = custom_url if custom_url else keyword
data = {
"spider_name": "facebook.com",
"spider_id": "facebook_profile_by-profiles-url",
"spider_parameters": f'[{{"url":"{facebook_url}"}}]',
"spider_errors": "true",
"file_name": "{{TasksID}}"
}
response = requests.post(BASE_BUILDER_URL, headers=HEADERS, data=data, timeout=60)
else:
result["error_type"] = "unknown_platform"
result["error_message"] = f"未知平台: {platform}"
return result
latency_ms = (time.time() - start_time) * 1000
result["latency_ms"] = round(latency_ms, 2)
if response.status_code == 200:
try:
response_data = response.json()
result["response_data"] = response_data
# 【调试模式】输出完整的原始响应结构到文件(确保能看到)
try:
debug_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "debug_response.log")
with open(debug_file, "a", encoding="utf-8") as df:
df.write(f"\n{'='*80}\n")
df.write(f"平台: {platform} | 关键词: {keyword} | 时间: {time.strftime('%Y-%m-%d %H:%M:%S')}\n")
df.write(f"{'='*80}\n")
df.write(f"数据类型: {type(response_data).__name__}\n")
df.write(f"是否为dict: {isinstance(response_data, dict)}\n")
df.write(f"是否为list: {isinstance(response_data, list)}\n")
if isinstance(response_data, dict):
df.write(f"顶层keys: {list(response_data.keys())}\n")
if isinstance(response_data, list) and len(response_data) > 0:
df.write(f"数组长度: {len(response_data)}\n")
if isinstance(response_data[0], dict):
df.write(f"第一个元素的keys: {list(response_data[0].keys())}\n")
df.write(f"\n完整原始数据:\n{json.dumps(response_data, ensure_ascii=False, indent=2, default=str)}\n")
df.write(f"\n{'='*80}\n\n")
except Exception as debug_err:
print(f"写入调试日志失败: {debug_err}", file=sys.stderr)
# 如果response_data是字符串,尝试再次解析(处理双重JSON编码)
if isinstance(response_data, str):
try:
response_data = json.loads(response_data)
result["response_data"] = response_data
except:
pass
# 检查业务级别的code字段
if response_data and isinstance(response_data, dict):
api_code = response_data.get("code", 200)
if api_code != 200:
result["success"] = False
result["error_type"] = "api_error"
result["error_message"] = response_data.get("data", f"API错误 {api_code}")
return result
result["success"] = True
# 检查Bing的空结果错误
if response_data and isinstance(response_data, dict):
rest_item = response_data.get("rest_item", {})
if rest_item and isinstance(rest_item, dict):
bing_error = rest_item.get("error", "")
if bing_error and "hasn't returned any results" in bing_error:
result["valid_data"] = False
return result
# 数据有效性检查逻辑
if response_data and isinstance(response_data, dict):
if platform == "google" and "organic" in response_data and len(response_data["organic"]) > 0:
result["valid_data"] = True
elif platform == "bing" and "organic" in response_data and len(response_data["organic"]) > 0:
result["valid_data"] = True
elif platform == "bing" and "rest_item" in response_data and response_data["rest_item"] and len(response_data["rest_item"]) > 0:
result["valid_data"] = True
elif platform == "amazon" and isinstance(response_data.get("data"), list):
# Amazon 返回的数据需要检查是否有有效项
data_list = response_data["data"]
if len(data_list) > 0:
# 检查是否有至少一项成功(success=true 且没有 error)
valid_items = [item for item in data_list if item.get("success") == True and not item.get("error")]
if len(valid_items) > 0:
result["valid_data"] = True
else:
# 有数据但都是失败的,记录第一个错误
result["valid_data"] = False
if data_list and data_list[0].get("error"):
result["error_type"] = "api_error"
result["error_message"] = f"{data_list[0].get('error_code', 'N/A')} {data_list[0].get('error', '')}"
else:
result["valid_data"] = False
elif platform == "youtube" and isinstance(response_data.get("data"), list):
# YouTube 同样检查有效项
data_list = response_data["data"]
if len(data_list) > 0:
valid_items = [item for item in data_list if item.get("success") == True and not item.get("error")]
if len(valid_items) > 0:
result["valid_data"] = True
else:
result["valid_data"] = False
if data_list and data_list[0].get("error"):
result["error_type"] = "api_error"
result["error_message"] = f"{data_list[0].get('error_code', 'N/A')} {data_list[0].get('error', '')}"
else:
result["valid_data"] = False
elif platform == "facebook" and isinstance(response_data.get("data"), list) and len(response_data["data"]) > 0:
result["valid_data"] = True
elif platform == "facebook" and isinstance(response_data.get("data"), dict) and "task_id" in response_data["data"]:
# Facebook 返回异步任务 ID,也算有效
result["valid_data"] = True
elif platform == "google" and "organic_results" in response_data and len(response_data["organic_results"]) > 0:
result["valid_data"] = True
elif platform == "bing" and "organic_results" in response_data and len(response_data["organic_results"]) > 0:
result["valid_data"] = True
else:
result["valid_data"] = False
elif isinstance(response_data, list) and len(response_data) > 0:
# 直接返回数组的情况(Facebook/YouTube可能直接返回数组)
result["valid_data"] = True
else:
result["valid_data"] = False
except json.JSONDecodeError:
result["error_type"] = "parse_error"
result["error_message"] = "JSON解析失败"
result["success"] = False
else:
result["error_type"] = "http_error"
result["error_message"] = f"HTTP错误 {response.status_code}"
except requests.exceptions.Timeout:
result["latency_ms"] = round((time.time() - start_time) * 1000, 2)
result["error_type"] = "timeout"
result["error_message"] = "请求超时"
except requests.exceptions.RequestException as e:
result["latency_ms"] = round((time.time() - start_time) * 1000, 2)
result["error_type"] = "request_error"
result["error_message"] = str(e)
except Exception as e:
result["latency_ms"] = round((time.time() - start_time) * 1000, 2)
result["error_type"] = "unknown_error"
result["error_message"] = str(e)
return result
def calculate_basic_metrics(results: List[Dict[str, Any]]) -> Dict[str, Any]:
"""
计算基础指标
"""
if not results:
return {
"total_requests": 0,
"success_count": 0,
"success_rate": 0.0,
"valid_data_count": 0,
"valid_data_rate": 0.0,
"avg_latency_ms": 0.0,
"p50_latency_ms": 0.0,
"p90_latency_ms": 0.0,
"p99_latency_ms": 0.0,
"max_latency_ms": 0.0,
"min_latency_ms": 0.0,
"hot_vs_cold": {
"hot": {"count": 0, "success_rate": 0.0, "avg_latency_ms": 0.0},
"cold": {"count": 0, "success_rate": 0.0, "avg_latency_ms": 0.0}
},
"error_analysis": {
"error_rate": 0.0,
"http_errors": 0,
"api_errors": 0,
"timeout_errors": 0,
"parse_errors": 0,
"empty_results": 0,
"unknown_errors": 0,
"error_details": {}
}
}
total_requests = len(results)
success_count = sum(1 for r in results if r.get("success"))
valid_data_count = sum(1 for r in results if r.get("valid_data"))
success_rate = (success_count / total_requests) * 100 if total_requests > 0 else 0
valid_data_rate = (valid_data_count / success_count) * 100 if success_count > 0 else 0
latencies = [r["latency_ms"] for r in results]
avg_latency_ms = sum(latencies) / len(latencies) if latencies else 0
max_latency_ms = max(latencies) if latencies else 0
min_latency_ms = min(latencies) if latencies else 0
sorted_latencies = sorted(latencies)
n = len(sorted_latencies)
p50_latency_ms = sorted_latencies[min(int(n * 0.5), n - 1)] if n > 0 else 0
p90_latency_ms = sorted_latencies[min(int(n * 0.9), n - 1)] if n > 0 else 0
p99_latency_ms = sorted_latencies[min(int(n * 0.99), n - 1)] if n > 0 else 0
hot_results = [r for r in results if r.get("is_hot")]
cold_results = [r for r in results if not r.get("is_hot")]
hot_count = len(hot_results)
hot_success_rate = (sum(1 for r in hot_results if r.get("success")) / hot_count) * 100 if hot_count > 0 else 0
hot_avg_latency = (sum(r["latency_ms"] for r in hot_results) / hot_count) if hot_count > 0 else 0
cold_count = len(cold_results)
cold_success_rate = (sum(1 for r in cold_results if r.get("success")) / cold_count) * 100 if cold_count > 0 else 0
cold_avg_latency = (sum(r["latency_ms"] for r in cold_results) / cold_count) if cold_count > 0 else 0
http_errors = sum(1 for r in results if r.get("error_type") == "http_error")
timeout_errors = sum(1 for r in results if r.get("error_type") == "timeout")
parse_errors = sum(1 for r in results if r.get("error_type") == "parse_error")
api_errors = sum(1 for r in results if r.get("error_type") == "api_error")
empty_results = sum(1 for r in results if r.get("success") and not r.get("valid_data"))
unknown_errors = sum(1 for r in results if r.get("error_type") == "unknown_error")
error_details = {}
for r in results:
if r.get("error_message"):
msg = r["error_message"][:100] if len(r["error_message"]) > 100 else r["error_message"]
error_details[msg] = error_details.get(msg, 0) + 1
error_rate = ((total_requests - success_count) / total_requests) * 100 if total_requests > 0 else 0
return {
"total_requests": total_requests,
"success_count": success_count,
"success_rate": round(success_rate, 2),
"valid_data_count": valid_data_count,
"valid_data_rate": round(valid_data_rate, 2),
"avg_latency_ms": round(avg_latency_ms, 2),
"p50_latency_ms": round(p50_latency_ms, 2),
"p90_latency_ms": round(p90_latency_ms, 2),
"p99_latency_ms": round(p99_latency_ms, 2),
"max_latency_ms": round(max_latency_ms, 2),
"min_latency_ms": round(min_latency_ms, 2),
"hot_vs_cold": {
"hot": {"count": hot_count, "success_rate": round(hot_success_rate, 2), "avg_latency_ms": round(hot_avg_latency, 2)},
"cold": {"count": cold_count, "success_rate": round(cold_success_rate, 2), "avg_latency_ms": round(cold_avg_latency, 2)}
},
"error_analysis": {
"error_rate": round(error_rate, 2),
"http_errors": http_errors,
"api_errors": api_errors,
"timeout_errors": timeout_errors,
"parse_errors": parse_errors,
"empty_results": empty_results,
"unknown_errors": unknown_errors,
"error_details": error_details
}
}
def calculate_metrics(results: List[Dict[str, Any]]) -> Dict[str, Any]:
"""
计算指标(调用基础指标计算函数)
"""
return calculate_basic_metrics(results)
def run_concurrent_requests(platform: str, keywords: List[Tuple[str, bool]], concurrency: int, platform_url: str = None) -> List[Dict[str, Any]]:
"""
并发发送请求(实时输出进度)
"""
results = []
total = len(keywords)
completed = 0
with concurrent.futures.ThreadPoolExecutor(max_workers=concurrency) as executor:
futures = []
for keyword, is_hot in keywords:
future = executor.submit(single_request, platform, keyword, platform_url)
future.is_hot = is_hot
futures.append(future)
for future in concurrent.futures.as_completed(futures):
result = future.result()
result["is_hot"] = future.is_hot
results.append(result)
completed += 1
# 实时输出进度信息(JSON格式,供前端SSE接收)
progress = {
"type": "progress",
"platform": platform,
"completed": completed,
"total": total,
"result": result
}
print(json.dumps(progress, ensure_ascii=False))
return results
def run_platform_test(platform: str, keywords: List[Tuple[str, bool]], concurrency: int, platform_url: str = None, rounds: int = 3) -> Dict[str, Any]:
"""
运行单个平台的测试(多轮取最优)
"""
all_rounds = []
for round_num in range(rounds):
logger.info(f"平台 {platform} 第 {round_num + 1} 轮测试开始(并发: {concurrency})")
results = run_concurrent_requests(platform, keywords, concurrency, platform_url)
metrics = calculate_metrics(results)
all_rounds.append({
"round": round_num + 1,
"results": results,
"metrics": metrics
})
logger.info(f"平台 {platform} 第 {round_num + 1} 轮测试完成,成功率: {metrics['success_rate']}%")
# 每轮完成后保存中间结果,防止超时丢失
try:
temp_result = {platform: {str(concurrency): {"results": results, "metrics": metrics}}}
with open("test_result.json", "w", encoding="utf-8") as f:
json.dump(temp_result, f, ensure_ascii=False, indent=2)
logger.info(f"中间结果已保存")
except Exception as e:
logger.warning(f"保存中间结果失败: {e}")
if not all_rounds:
return {"results": [], "metrics": calculate_metrics([])}
def get_overall_success_rate(round_data):
return round_data["metrics"]["success_rate"]
best_round = max(all_rounds, key=get_overall_success_rate)
return best_round
def print_platform_report(platform: str, metrics: Dict[str, Any]):
"""
打印单个平台的详细测试报告(表格形式)
"""
print(f"\n{'='*70}")
print(f" 平台: {platform.upper()} 测试报告")
print(f"{'='*70}")
print("\n【并发性能对比】")
print(f"{'并发数':<8} {'总请求数':<10} {'成功率(%)':<12} {'有效率(%)':<12} {'平均延迟(ms)':<15} {'P90延迟(ms)':<15}")
print("-" * 80)
for concurrency in sorted(metrics.keys()):
m = metrics[concurrency]["metrics"]
print(f"{concurrency:<8} {m['total_requests']:<10} {m['success_rate']:<12} {m['valid_data_rate']:<12} {m['avg_latency_ms']:<15} {m['p90_latency_ms']:<15}")
first_concurrency = list(metrics.keys())[0] if metrics else 1
print("\n【冷热词对比】")
print(f"{'类型':<8} {'样本数':<8} {'成功率(%)':<12} {'平均延迟(ms)':<15}")
print("-" * 50)
if "hot_vs_cold" in metrics[first_concurrency]["metrics"]:
hot = metrics[first_concurrency]["metrics"]["hot_vs_cold"]["hot"]
cold = metrics[first_concurrency]["metrics"]["hot_vs_cold"]["cold"]
print(f"{'热门词':<8} {hot['count']:<8} {hot['success_rate']:<12} {hot['avg_latency_ms']:<15}")
print(f"{'冷门词':<8} {cold['count']:<8} {cold['success_rate']:<12} {cold['avg_latency_ms']:<15}")
else:
print(" 数据不足,无法展示")
print(f"\n【延迟分布统计(并发{first_concurrency})】")
m = metrics[first_concurrency]["metrics"]
print(f" 平均延迟: {m['avg_latency_ms']} ms")
print(f" P50延迟: {m['p50_latency_ms']} ms")
print(f" P90延迟: {m['p90_latency_ms']} ms")
print(f" P99延迟: {m['p99_latency_ms']} ms")
print(f" 最大延迟: {m['max_latency_ms']} ms")
print(f"\n【错误分析统计(并发{first_concurrency})】")
error = m["error_analysis"]
print(f" 总错误率: {error['error_rate']}%")
print(f" HTTP错误: {error['http_errors']}次")
print(f" API错误: {error['api_errors']}次")
print(f" 超时错误: {error['timeout_errors']}次")
print(f" 解析错误: {error['parse_errors']}次")
print(f" 空结果: {error['empty_results']}次")
print(f" 未知错误: {error['unknown_errors']}次")
if error["error_details"]:
print("\n 错误详情:")
for err, count in sorted(error["error_details"].items(), key=lambda x: x[1], reverse=True)[:5]:
print(f" - {err}: {count}次")
print(f"\n{'='*70}\n")
def print_summary_report(platform_metrics: Dict[str, Any]):
"""
打印所有平台的汇总报告
"""
print(f"\n{'='*90}")
print(f" Dataify API 压测汇总报告")
print(f"{'='*90}")
print("\n【各平台性能汇总】")
print(f"{'平台':<10} {'总请求数':<10} {'成功率(%)':<12} {'有效率(%)':<12} {'平均延迟(ms)':<15} {'P90延迟(ms)':<15} {'P99延迟(ms)':<15}")
print("-" * 100)
for platform, metrics in sorted(platform_metrics.items()):
if metrics:
first_concurrency = list(metrics.keys())[0]
m = metrics[first_concurrency]["metrics"]
print(f"{platform.upper():<10} {m['total_requests']:<10} {m['success_rate']:<12} {m['valid_data_rate']:<12} {m['avg_latency_ms']:<15} {m['p90_latency_ms']:<15} {m['p99_latency_ms']:<15}")
print(f"\n{'='*90}\n")
def main():
"""
主测试函数
"""
parser = argparse.ArgumentParser(description="Dataify API压测工具")
parser.add_argument('--test', action='store_true', help='测试模式:只发送1个请求')
parser.add_argument('--concurrency', type=int, choices=[1, 10, 20], default=1, help='并发数:1/10/20')
parser.add_argument('--platform', type=str, choices=list(TEST_KEYWORDS.keys()), help='指定测试平台')
parser.add_argument('--urls', type=str, help='平台URL配置(URL编码的JSON)')
parser.add_argument('--keyword', type=str, help='自定义搜索关键词(覆盖默认测试关键词)')
args = parser.parse_args()
test_mode = args.test
concurrency = args.concurrency
target_platform = args.platform
custom_keyword = args.keyword
platform_urls = {}
if args.urls:
try:
# 直接解析JSON字符串,不需要URL解码
platform_urls = json.loads(args.urls)
except Exception as e:
logger.warning(f"解析平台URL失败: {e}")
platform_urls = {}
if test_mode:
logger.info("进入测试模式:仅发送1个请求")
else:
logger.info(f"进入正式模式,并发数: {concurrency}")
if custom_keyword:
logger.info(f"使用自定义关键词: {custom_keyword}")
platform_metrics = {}
platforms_to_test = [target_platform] if target_platform else list(TEST_KEYWORDS.keys())
for platform in platforms_to_test:
# 【警告】Amazon/YouTube/Facebook 不支持自动化测试(只返回 task_id,无法获取实际数据)
if platform in ["amazon", "youtube", "facebook"]:
logger.warning(f"⚠️ 平台 {platform.upper()} 不支持自动化测试!")
logger.warning(f" 原因:API 只返回 task_id,需要到官网手动查看结果")
logger.warning(f" 建议:只测试 Google 和 Bing 平台")
continue
# 如果有自定义关键词,使用自定义关键词;否则使用默认测试关键词
if custom_keyword:
keywords = [(custom_keyword, True)]
else:
keywords = TEST_KEYWORDS.get(platform, [])
if not keywords:
logger.warning(f"平台 {platform} 无测试关键词,跳过")
continue
platform_url = platform_urls.get(platform) if platform_urls else None
if test_mode:
logger.info(f"平台 {platform} 测试模式:发送1个请求")
keyword, is_hot = keywords[0]
result = single_request(platform, keyword, platform_url)
result["is_hot"] = is_hot
results = [result]
metrics = calculate_metrics(results)
# 输出进度信息
progress = {
"type": "progress",
"platform": platform,
"completed": 1,
"total": 1,
"result": result
}
print(json.dumps(progress, ensure_ascii=False))
platform_metrics[platform] = {
concurrency: {
"results": results,
"metrics": metrics
}
}
else:
logger.info(f"平台 {platform} 正式测试,并发数: {concurrency}")
test_result = run_platform_test(platform, keywords, concurrency, platform_url, rounds=3)
platform_metrics[platform] = {
concurrency: {
"results": test_result["results"],
"metrics": test_result["metrics"]
}
}
if platform_metrics:
print_summary_report(platform_metrics)
for platform in platforms_to_test:
if platform in platform_metrics:
print_platform_report(platform, platform_metrics[platform])
# 确保即使发生异常也能保存结果
try:
with open("test_result.json", "w", encoding="utf-8") as f:
json.dump(platform_metrics, f, ensure_ascii=False, indent=2)
logger.info("所有测试完成,结果已保存到 test_result.json")
except Exception as e:
logger.error(f"保存结果失败: {e}")
# 尝试保存到备份文件
try:
backup_file = f"test_result_backup_{int(time.time())}.json"
with open(backup_file, "w", encoding="utf-8") as f:
json.dump(platform_metrics, f, ensure_ascii=False, indent=2)
logger.info(f"结果已保存到备份文件: {backup_file}")
except Exception as e2:
logger.error(f"备份保存也失败: {e2}")
if __name__ == "__main__":
main()
#server.py 配置
from flask import Flask, jsonify, request, Response, stream_with_context
from flask_cors import CORS
import subprocess
import json
import os
import sys
import time
import threading
app = Flask(__name__)
CORS(app)
# 获取当前脚本所在目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
RESULT_FILE = os.path.join(BASE_DIR, 'test_result.json')
PROGRESS_FILE = os.path.join(BASE_DIR, 'test_progress.json')
# 全局变量存储当前测试状态
current_test = {
'running': False,
'task_id': None,
'results': [],
'metrics': {}
}
def load_existing_results():
"""加载已有的测试结果"""
if os.path.exists(RESULT_FILE):
try:
with open(RESULT_FILE, 'r', encoding='utf-8') as f:
content = f.read()
if content.strip():
return json.loads(content)
except (json.JSONDecodeError, Exception) as e:
print(f"加载已有结果失败: {e}")
return {}
def merge_results(existing, new):
"""合并测试结果(叠加模式)"""
if not new:
return existing
merged = existing.copy()
for platform, new_data in new.items():
if platform not in merged:
merged[platform] = {}
# 合并并发级别数据
for concurrency, data in new_data.items():
if concurrency not in merged[platform]:
merged[platform][concurrency] = {
"results": [],
"metrics": data["metrics"].copy() if "metrics" in data else {}
}
# 叠加结果列表
if "results" in data:
merged[platform][concurrency]["results"].extend(data["results"])
# 更新指标
if "metrics" in data:
merged[platform][concurrency]["metrics"] = data["metrics"]
return merged
@app.route('/api/run-test', methods=['POST'])
def run_test():
"""运行API压测脚本(实时流式输出)"""
try:
data = request.get_json()
test_mode = data.get('mode', 'full')
concurrency = data.get('concurrency', 1)
platform = data.get('platform', None)
append = data.get('append', False)
platform_urls = data.get('platformUrls', {})
custom_keyword = data.get('keyword', '')
# 生成任务ID
import uuid
task_id = str(uuid.uuid4())[:8]
# 直接将JSON转换为字符串,不需要URL编码
urls_json = json.dumps(platform_urls, ensure_ascii=False)
# 构建命令参数(添加 -u 禁用Python输出缓冲)
cmd = ['python', '-u', 'api压测.py']
if test_mode == 'test':
cmd.append('--test')
if concurrency:
cmd.append(f'--concurrency={concurrency}')
if platform:
cmd.append(f'--platform={platform}')
# 使用--urls参数传递JSON字符串
cmd.extend(['--urls', urls_json])
if custom_keyword:
cmd.append(f'--keyword={custom_keyword}')
print(f"执行命令: {' '.join(cmd)}")
# 设置超时时间
timeout = 120 if test_mode == 'test' else 600
def generate():
"""生成SSE事件流"""
global current_test
current_test = {
'running': True,
'task_id': task_id,
'results': [],
'metrics': {}
}
try:
# 启动子进程,实时读取输出
process = subprocess.Popen(
cmd,
cwd=BASE_DIR,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
encoding='utf-8',
errors='replace',
shell=False
)
for line in iter(process.stdout.readline, ''):
if line:
line = line.strip()
# 检查是否是JSON格式的输出
if line.startswith('{') and '}' in line:
try:
# 找到第一个完整的JSON对象
json_start = line.index('{')
json_end = line.rindex('}') + 1
json_str = line[json_start:json_end]
data_obj = json.loads(json_str)
# 如果是进度信息,转发给前端
if data_obj.get('type') == 'progress':
yield f"data: {json.dumps(data_obj, ensure_ascii=False)}\n\n"
# 如果是调试信息,打印到服务器控制台
elif data_obj.get('type') == 'debug_raw_response':
print(f"\n[DEBUG] {data_obj['platform']} - {data_obj['keyword']}:")
print(json.dumps(data_obj.get('response_structure', {}), ensure_ascii=False, indent=2))
print(f"[RAW DATA]\n{json.dumps(data_obj.get('raw_data', {}), ensure_ascii=False, indent=2)[:1000]}...\n")
except Exception as e:
# JSON解析失败,忽略
pass
process.wait(timeout=timeout)
# 测试完成,发送最终结果
final_result = {}
if os.path.exists(RESULT_FILE):
with open(RESULT_FILE, 'r', encoding='utf-8') as f:
content = f.read()
if content.strip():
final_result = json.loads(content)
yield f"data: {json.dumps({'type': 'complete', 'data': final_result}, ensure_ascii=False)}\n\n"
except Exception as e:
yield f"data: {json.dumps({'type': 'error', 'error': str(e)}, ensure_ascii=False)}\n\n"
finally:
current_test['running'] = False
return Response(stream_with_context(generate()), mimetype='text/event-stream')
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({
'success': False,
'error': str(e)
})
@app.route('/api/test-result', methods=['GET'])
def get_test_result():
"""获取已有的测试结果"""
try:
if os.path.exists(RESULT_FILE):
with open(RESULT_FILE, 'r', encoding='utf-8') as f:
test_result = json.load(f)
return jsonify({
'success': True,
'data': test_result
})
else:
return jsonify({
'success': False,
'error': '测试结果文件不存在'
})
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
})
@app.route('/api/clear-result', methods=['POST'])
def clear_result():
"""清除测试结果"""
try:
if os.path.exists(RESULT_FILE):
os.remove(RESULT_FILE)
return jsonify({
'success': True,
'message': '测试结果已清除'
})
else:
return jsonify({
'success': True,
'message': '没有需要清除的测试结果'
})
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
#vue2 前端页面
<template>
<div class="dashboard">
<div class="header">
<h1>Dataify API 压测可视化平台</h1>
<!-- 测试配置面板 -->
<div class="config-panel">
<div class="config-section">
<label class="config-label">测试模式</label>
<div class="radio-group">
<label class="radio-item">
<input type="radio" v-model="testMode" value="test" />
<span>测试模式</span>
<span class="hint">仅发送1个请求,验证联动</span>
</label>
<label class="radio-item">
<input type="radio" v-model="testMode" value="full" />
<span>正式模式</span>
<span class="hint">批量测试,完整数据采集</span>
</label>
</div>
</div>
<div class="config-section">
<label class="config-label">并发数</label>
<div class="concurrency-buttons">
<button
v-for="c in [1, 10, 20]"
:key="c"
@click="selectedConcurrency = c"
:class="['concurrency-btn', { active: selectedConcurrency === c }]"
>
{{ c }}并发
</button>
</div>
<span class="hint">并发数=同时发送的请求数</span>
</div>
<div class="config-section">
<label class="config-label">测试平台</label>
<div class="platform-checkbox-group">
<label v-for="p in platforms" :key="p.value" class="platform-checkbox">
<input type="checkbox" v-model="selectedPlatforms" :value="p.value" />
<span>{{ p.label }}</span>
</label>
</div>
</div>
<div class="config-section">
<label class="config-label">结果模式</label>
<div class="radio-group">
<label class="radio-item">
<input type="radio" v-model="resultMode" value="replace" />
<span>覆盖模式</span>
<span class="hint">新结果替换旧结果</span>
</label>
<label class="radio-item">
<input type="radio" v-model="resultMode" value="append" />
<span>追加模式</span>
<span class="hint">新结果叠加到旧结果</span>
</label>
</div>
</div>
</div>
<div class="actions">
<button @click="runTest" :disabled="loading" class="btn-primary">
{{ loading ? '测试中...' : '开始测试' }}
</button>
<button @click="loadResult" class="btn-secondary">加载结果</button>
<button @click="clearResult" class="btn-danger">清除结果</button>
</div>
<!-- 测试统计信息 -->
<div v-if="testResult" class="stats-bar">
<span class="stat-item">已测试平台: {{ Object.keys(testResult).length }}</span>
<span class="stat-item">测试次数: {{ testCount }}</span>
<span class="stat-item">最后更新: {{ lastUpdate }}</span>
</div>
</div>
<div v-if="error" class="error-message">
{{ error }}
</div>
<div v-if="testResult" class="content">
<!-- 平台选择 -->
<div class="platform-selector">
<h3>选择查看平台</h3>
<div class="platform-buttons">
<button
v-for="(data, platform) in testResult"
:key="platform"
@click="viewPlatform = platform"
:class="['platform-btn', { active: viewPlatform === platform }]"
>
{{ platform.toUpperCase() }}
</button>
</div>
</div>
<!-- 当前平台数据 -->
<div v-if="viewPlatform && testResult[viewPlatform]" class="platform-data">
<h2>{{ viewPlatform.toUpperCase() }} 平台测试结果</h2>
<!-- 测试概览卡片 -->
<div class="overview-cards">
<div class="overview-card">
<div class="card-title">总请求数</div>
<div class="card-value">{{ getTotalRequests() }}</div>
</div>
<div class="overview-card success">
<div class="card-title">成功率</div>
<div class="card-value">{{ getCurrentMetrics().success_rate }}%</div>
</div>
<div class="overview-card warning">
<div class="card-title">平均延迟</div>
<div class="card-value">{{ getCurrentMetrics().avg_latency_ms }}ms</div>
</div>
<div class="overview-card danger">
<div class="card-title">错误率</div>
<div class="card-value">{{ getCurrentMetrics().error_analysis?.error_rate || 0 }}%</div>
</div>
</div>
<!-- 并发对比表格 -->
<div class="card">
<h3>测试结果概览</h3>
<table class="data-table">
<thead>
<tr>
<th>并发数</th>
<th>总请求数</th>
<th>成功率(%)</th>
<th>有效率(%)</th>
<th>平均延迟(ms)</th>
<th>P90延迟(ms)</th>
<th>P99延迟(ms)</th>
</tr>
</thead>
<tbody>
<tr v-for="(data, concurrency) in testResult[viewPlatform]" :key="concurrency">
<td>{{ concurrency }}</td>
<td>{{ data.metrics.total_requests }}</td>
<td>{{ data.metrics.success_rate }}</td>
<td>{{ data.metrics.valid_data_rate }}</td>
<td>{{ data.metrics.avg_latency_ms }}</td>
<td>{{ data.metrics.p90_latency_ms }}</td>
<td>{{ data.metrics.p99_latency_ms }}</td>
</tr>
</tbody>
</table>
</div>
<!-- 爬取数据展示表格 -->
<div class="card">
<h3>爬取数据详情(真实返回数据)</h3>
<div class="scrollable-table">
<table class="data-table">
<thead>
<tr>
<th>关键词</th>
<th>是否成功</th>
<th>是否有效</th>
<th>延迟(ms)</th>
<th>数据类型</th>
<th>返回数据摘要</th>
</tr>
</thead>
<tbody>
<tr v-for="(result, index) in getCurrentResults()" :key="index">
<td>{{ result.keyword }}</td>
<td :class="result.success ? 'success' : 'danger'">{{ result.success ? '成功' : '失败' }}</td>
<td :class="result.valid_data ? 'success' : 'warning'">{{ result.valid_data ? '有效' : '无效' }}</td>
<td>{{ result.latency_ms }}</td>
<td>{{ getResultDataType(result) }}</td>
<td class="data-preview">{{ getResultPreview(result) }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 图表区域 -->
<div class="charts-container">
<!-- 成功率对比图 -->
<div class="chart-card">
<h3>成功率趋势</h3>
<div ref="successChart" class="chart"></div>
</div>
<!-- 延迟对比图 -->
<div class="chart-card">
<h3>延迟分布</h3>
<div ref="latencyChart" class="chart"></div>
</div>
<!-- 冷热词对比图 -->
<div class="chart-card">
<h3>冷热词性能对比</h3>
<div ref="hotColdChart" class="chart"></div>
</div>
<!-- 错误分析图 -->
<div class="chart-card">
<h3>错误分析</h3>
<div ref="errorChart" class="chart"></div>
</div>
</div>
<!-- 错误详情 -->
<div class="card">
<h3>错误详情</h3>
<div v-if="getCurrentMetrics().error_analysis" class="error-details">
<div class="error-item">
<span>总错误率:</span>
<span>{{ getCurrentMetrics().error_analysis.error_rate }}%</span>
</div>
<div class="error-item">
<span>HTTP错误:</span>
<span>{{ getCurrentMetrics().error_analysis.http_errors }}次</span>
</div>
<div class="error-item">
<span>API错误:</span>
<span>{{ getCurrentMetrics().error_analysis.api_errors }}次</span>
</div>
<div class="error-item">
<span>超时错误:</span>
<span>{{ getCurrentMetrics().error_analysis.timeout_errors }}次</span>
</div>
<div class="error-item">
<span>解析错误:</span>
<span>{{ getCurrentMetrics().error_analysis.parse_errors }}次</span>
</div>
<div class="error-item">
<span>空结果:</span>
<span>{{ getCurrentMetrics().error_analysis.empty_results }}次</span>
</div>
</div>
</div>
</div>
<!-- 全平台汇总 -->
<div class="card summary-card">
<h3>全平台性能汇总</h3>
<table class="data-table">
<thead>
<tr>
<th>平台</th>
<th>总请求</th>
<th>成功率(%)</th>
<th>有效率(%)</th>
<th>平均延迟(ms)</th>
<th>P90延迟(ms)</th>
<th>P99延迟(ms)</th>
</tr>
</thead>
<tbody>
<tr v-for="(data, platform) in testResult" :key="platform">
<td>{{ platform.toUpperCase() }}</td>
<td>{{ getPlatformTotalRequests(data) }}</td>
<td>{{ getFirstMetric(data).success_rate }}</td>
<td>{{ getFirstMetric(data).valid_data_rate }}</td>
<td>{{ getFirstMetric(data).avg_latency_ms }}</td>
<td>{{ getFirstMetric(data).p90_latency_ms }}</td>
<td>{{ getFirstMetric(data).p99_latency_ms }}</td>
</tr>
</tbody>
</table>
</div>
<!-- 平台对比图表 -->
<div class="card">
<h3>跨平台性能对比</h3>
<div ref="compareChart" class="chart-large"></div>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
import * as echarts from 'echarts'
export default {
name: 'Dashboard',
data() {
return {
loading: false,
error: null,
testResult: null,
testMode: 'test',
selectedConcurrency: 1,
selectedPlatforms: ['google', 'bing'],
resultMode: 'replace',
viewPlatform: null,
charts: {},
testCount: 0,
lastUpdate: '-',
platforms: [
{ value: 'google', label: 'Google' },
{ value: 'bing', label: 'Bing' },
{ value: 'amazon', label: 'Amazon' },
{ value: 'youtube', label: 'YouTube' },
{ value: 'facebook', label: 'Facebook' }
],
platformUrls: {
google: '',
bing: '',
amazon: '',
youtube: '',
facebook: ''
},
customKeyword: ''
}
},
mounted() {
// 页面加载时自动获取之前的测试结果
this.loadResult()
},
methods: {
async runTest() {
this.loading = true
this.error = null
// 覆盖模式:清空现有结果
if (this.resultMode === 'replace') {
this.testResult = {}
this.testCount = 0
}
try {
// 构建请求参数
const params = {
mode: this.testMode,
concurrency: this.selectedConcurrency,
platform: this.selectedPlatforms.length === 1 ? this.selectedPlatforms[0] : null,
append: this.resultMode === 'append',
platformUrls: this.platformUrls,
keyword: this.customKeyword.trim()
}
// 使用 fetch API 接收 SSE 流
const response = await fetch('http://localhost:5000/api/run-test', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(params)
})
const reader = response.body.getReader()
const decoder = new TextDecoder()
let buffer = ''
while (true) {
const { done, value } = await reader.read()
if (done) break
buffer += decoder.decode(value, { stream: true })
const lines = buffer.split('\n\n')
buffer = lines.pop() || ''
for (const line of lines) {
if (line.startsWith('data: ')) {
try {
const data = JSON.parse(line.slice(6))
if (data.type === 'progress') {
// 实时更新进度
console.log('Progress:', data.completed, '/', data.total)
// 如果有现有结果,更新它
if (!this.testResult) {
this.testResult = {}
}
// 添加或更新当前平台的结果
const platform = data.platform
if (!this.testResult[platform]) {
this.testResult[platform] = {}
}
// 获取现有的结果数组,追加新结果
const existingData = this.testResult[platform][this.selectedConcurrency]
const existingResults = existingData?.results || []
const allResults = [...existingResults, data.result]
// 使用所有累积的结果计算指标
const metrics = this.calculateMetrics(allResults)
// 更新数据
this.testResult[platform][this.selectedConcurrency] = {
results: allResults,
metrics: metrics
}
// 设置查看平台
if (!this.viewPlatform) {
this.viewPlatform = platform
}
// 更新统计信息
this.testCount++
this.lastUpdate = new Date().toLocaleString('zh-CN')
// 刷新图表
this.$nextTick(() => {
this.initCharts()
})
} else if (data.type === 'complete') {
// 测试完成,加载完整结果
this.testResult = data.data
this.viewPlatform = Object.keys(this.testResult)[0]
this.testCount++
this.lastUpdate = new Date().toLocaleString('zh-CN')
this.$nextTick(() => {
this.initCharts()
})
} else if (data.type === 'error') {
this.error = '测试错误: ' + data.error
}
} catch (e) {
console.error('解析SSE数据失败:', e)
}
}
}
}
} catch (err) {
this.error = '测试失败: ' + err.message
} finally {
this.loading = false
}
},
calculateMetrics(results) {
// 简单的指标计算
const total = results.length
const success = results.filter(r => r.success).length
const validData = results.filter(r => r.valid_data).length
const latencies = results.map(r => r.latency_ms)
const sortedLatencies = latencies.sort((a, b) => a - b)
const n = sortedLatencies.length
return {
total_requests: total,
success_count: success,
success_rate: total > 0 ? ((success / total) * 100).toFixed(2) : 0,
valid_data_count: validData,
valid_data_rate: success > 0 ? ((validData / success) * 100).toFixed(2) : 0,
avg_latency_ms: n > 0 ? (latencies.reduce((a, b) => a + b, 0) / n).toFixed(2) : 0,
p50_latency_ms: n > 0 ? sortedLatencies[Math.min(Math.floor(n * 0.5), n - 1)] : 0,
p90_latency_ms: n > 0 ? sortedLatencies[Math.min(Math.floor(n * 0.9), n - 1)] : 0,
p99_latency_ms: n > 0 ? sortedLatencies[Math.min(Math.floor(n * 0.99), n - 1)] : 0,
max_latency_ms: n > 0 ? Math.max(...latencies) : 0,
min_latency_ms: n > 0 ? Math.min(...latencies) : 0,
error_analysis: {
error_rate: total > 0 ? (((total - success) / total) * 100).toFixed(2) : 0,
http_errors: results.filter(r => r.error_type === 'http_error').length,
api_errors: results.filter(r => r.error_type === 'api_error').length,
timeout_errors: results.filter(r => r.error_type === 'timeout').length,
parse_errors: results.filter(r => r.error_type === 'parse_error').length,
empty_results: results.filter(r => r.success && !r.valid_data).length,
unknown_errors: results.filter(r => r.error_type === 'unknown_error').length
}
}
},
async loadResult() {
try {
const response = await axios.get('http://localhost:5000/api/test-result')
if (response.data.success) {
this.testResult = response.data.data
this.viewPlatform = Object.keys(this.testResult)[0]
this.$nextTick(() => {
this.initCharts()
})
} else {
this.error = null
}
} catch (err) {
this.error = null
}
},
async clearResult() {
if (!confirm('确定要清除所有测试结果吗?')) return
try {
const response = await axios.post('http://localhost:5000/api/clear-result')
if (response.data.success) {
this.testResult = null
this.viewPlatform = null
this.testCount = 0
this.lastUpdate = '-'
this.error = null
}
} catch (err) {
this.error = '清除失败: ' + err.message
}
},
getCurrentMetrics() {
if (!this.viewPlatform || !this.testResult[this.viewPlatform]) {
return {
success_rate: 0,
valid_data_rate: 0,
avg_latency_ms: 0,
p90_latency_ms: 0,
p99_latency_ms: 0,
error_analysis: {
error_rate: 0,
http_errors: 0,
api_errors: 0,
timeout_errors: 0,
parse_errors: 0,
empty_results: 0,
unknown_errors: 0
}
}
}
const concurrencies = Object.keys(this.testResult[this.viewPlatform]).map(Number)
const latest = concurrencies[concurrencies.length - 1]
return this.testResult[this.viewPlatform][latest].metrics
},
getCurrentResults() {
if (!this.viewPlatform || !this.testResult[this.viewPlatform]) {
return []
}
const concurrencies = Object.keys(this.testResult[this.viewPlatform]).map(Number)
const latest = concurrencies[concurrencies.length - 1]
return this.testResult[this.viewPlatform][latest].results || []
},
getResultDataType(result) {
if (!result.response_data) return '无数据'
const data = result.response_data
// Check for direct array format (Facebook/YouTube actual responses)
if (Array.isArray(data)) {
if (data.length > 0) {
const firstItem = data[0]
// Facebook profiles
if (firstItem.user_name || firstItem.page_followers) return '主页数据'
// YouTube videos
if (firstItem.channelName || firstItem.videoId) return '视频数据'
// Amazon products
if (firstItem.product_title || firstItem.asin) return '商品数据'
return '其他数据'
}
return '空数据'
}
// Amazon/YouTube/Facebook 异步任务格式
if (data.data && typeof data.data === 'object' && !Array.isArray(data.data) && data.data.task_id) {
return '异步任务'
}
// Amazon/YouTube 数据数组格式
if (data.data && Array.isArray(data.data)) {
if (data.data.length > 0) {
const firstItem = data.data[0]
// 检查是否有错误
if (firstItem.error) {
return `API错误 (${firstItem.error_code || 'N/A'})`
}
// 判断数据类型
if (firstItem.product_title || firstItem.asin) return '商品数据'
if (firstItem.videoId || firstItem.channelName) return '视频数据'
return '其他数据'
}
return '空数据'
}
if (data.organic) return '搜索结果'
if (data.results) return '商品数据'
if (data.video_results) return '视频数据'
if (data.posts) return '帖子数据'
return '其他数据'
},
getResultPreview(result) {
if (!result.response_data) {
return result.error_message || '无返回数据'
}
const data = result.response_data
// 检查是否有错误信息(优先显示)
if (result.error_message) {
return result.error_message
}
// Handle direct array responses (Facebook/YouTube)
if (Array.isArray(data)) {
if (data.length > 0) {
const firstItem = data[0]
// Facebook profiles
if (firstItem.user_name) {
return `${firstItem.user_name} (${firstItem.page_followers || 'N/A'} followers)`
}
// YouTube videos
if (firstItem.title && firstItem.channelName) {
return `${firstItem.title.substring(0, 40)}... - ${firstItem.channelName}`
}
// Amazon products
if (firstItem.product_title) {
return firstItem.product_title.substring(0, 50) + (firstItem.product_title.length > 50 ? '...' : '')
}
return JSON.stringify(firstItem).substring(0, 50)
}
return '空数据'
}
// Amazon/YouTube/Facebook 异步任务格式
if (data.data && typeof data.data === 'object' && !Array.isArray(data.data) && data.data.task_id) {
return `任务ID: ${data.data.task_id.substring(0, 16)}...`
}
// Amazon/YouTube 格式:检查 data 数组中的错误
if (data.data && Array.isArray(data.data)) {
if (data.data.length > 0) {
const firstItem = data.data[0]
// 如果有错误,显示错误信息
if (firstItem.error) {
return `${firstItem.error_code || 'N/A'} ${firstItem.error}`
}
// 成功的数据,显示标题
const title = firstItem.title || firstItem.product_title || '无标题'
return title.substring(0, 50) + (title.length > 50 ? '...' : '')
}
return '空数据'
}
if (data.organic && data.organic.length > 0) {
const title = data.organic[0].title || '无标题'
return title.substring(0, 50) + (title.length > 50 ? '...' : '')
}
if (data.results && data.results.length > 0) {
const title = data.results[0].title || data.results[0].product_title || '无标题'
return title.substring(0, 50) + (title.length > 50 ? '...' : '')
}
if (data.video_results && data.video_results.length > 0) {
const title = data.video_results[0].title || '无标题'
return title.substring(0, 50) + (title.length > 50 ? '...' : '')
}
if (data.posts && data.posts.length > 0) {
const text = data.posts[0].text || '无内容'
return text.substring(0, 50) + (text.length > 50 ? '...' : '')
}
return '数据格式未知'
},
getUrlPlaceholder(platform) {
const placeholders = {
google: '留空使用关键词搜索',
bing: '留空使用关键词搜索',
amazon: 'https://www.amazon.com/s?k=关键词',
youtube: 'https://www.youtube.com/@频道/videos',
facebook: 'https://www.facebook.com/events/搜索'
}
return placeholders[platform] || ''
},
getFirstMetric(data) {
const keys = Object.keys(data)
if (keys.length === 0) {
return {
total_requests: 0,
success_rate: 0,
valid_data_rate: 0,
avg_latency_ms: 0,
p90_latency_ms: 0,
p99_latency_ms: 0
}
}
return data[keys[0]].metrics
},
getTotalRequests() {
if (!this.viewPlatform || !this.testResult[this.viewPlatform]) return 0
return Object.values(this.testResult[this.viewPlatform]).reduce(
(sum, data) => sum + data.metrics.total_requests, 0
)
},
getPlatformTotalRequests(data) {
return Object.values(data).reduce(
(sum, item) => sum + item.metrics.total_requests, 0
)
},
initCharts() {
this.destroyCharts()
if (!this.viewPlatform || !this.testResult[this.viewPlatform]) return
const platformData = this.testResult[this.viewPlatform]
const concurrencies = Object.keys(platformData).map(Number).sort()
// 成功率趋势图
this.initSuccessChart(concurrencies, platformData)
// 延迟分布图
this.initLatencyChart(concurrencies, platformData)
// 冷热词对比图
this.initHotColdChart(platformData)
// 错误分析图
this.initErrorChart(platformData)
// 跨平台对比图
this.initCompareChart()
},
initSuccessChart(concurrencies, platformData) {
const chart = echarts.init(this.$refs.successChart)
this.charts.successChart = chart
const successRates = concurrencies.map(c => platformData[c].metrics.success_rate)
const validRates = concurrencies.map(c => platformData[c].metrics.valid_data_rate)
chart.setOption({
tooltip: { trigger: 'axis' },
legend: { data: ['成功率', '有效率'] },
xAxis: {
type: 'category',
data: concurrencies.map(c => c + '并发')
},
yAxis: { type: 'value', max: 100 },
series: [
{ name: '成功率', type: 'line', data: successRates, smooth: true },
{ name: '有效率', type: 'line', data: validRates, smooth: true }
]
})
},
initLatencyChart(concurrencies, platformData) {
const chart = echarts.init(this.$refs.latencyChart)
this.charts.latencyChart = chart
const avgLatency = concurrencies.map(c => platformData[c].metrics.avg_latency_ms)
const p90Latency = concurrencies.map(c => platformData[c].metrics.p90_latency_ms)
const p99Latency = concurrencies.map(c => platformData[c].metrics.p99_latency_ms)
chart.setOption({
tooltip: { trigger: 'axis' },
legend: { data: ['平均延迟', 'P90延迟', 'P99延迟'] },
xAxis: {
type: 'category',
data: concurrencies.map(c => c + '并发')
},
yAxis: { type: 'value', name: 'ms' },
series: [
{ name: '平均延迟', type: 'bar', data: avgLatency },
{ name: 'P90延迟', type: 'bar', data: p90Latency },
{ name: 'P99延迟', type: 'bar', data: p99Latency }
]
})
},
initHotColdChart(platformData) {
const chart = echarts.init(this.$refs.hotColdChart)
this.charts.hotColdChart = chart
const concurrencies = Object.keys(platformData).map(Number).sort()
const latest = concurrencies[concurrencies.length - 1]
const metrics = platformData[latest].metrics
const hotVsCold = metrics.hot_vs_cold || { hot: {}, cold: {} }
chart.setOption({
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
legend: { data: ['热门词', '冷门词'] },
xAxis: {
type: 'category',
data: ['成功率(%)', '平均延迟(ms)', '样本数']
},
yAxis: { type: 'value' },
series: [
{
name: '热门词',
type: 'bar',
data: [
hotVsCold.hot.success_rate || 0,
hotVsCold.hot.avg_latency_ms || 0,
hotVsCold.hot.count || 0
]
},
{
name: '冷门词',
type: 'bar',
data: [
hotVsCold.cold.success_rate || 0,
hotVsCold.cold.avg_latency_ms || 0,
hotVsCold.cold.count || 0
]
}
]
})
},
initErrorChart(platformData) {
const chart = echarts.init(this.$refs.errorChart)
this.charts.errorChart = chart
const concurrencies = Object.keys(platformData).map(Number).sort()
const latest = concurrencies[concurrencies.length - 1]
const error = platformData[latest].metrics.error_analysis || {}
const data = [
{ name: 'HTTP错误', value: error.http_errors || 0 },
{ name: 'API错误', value: error.api_errors || 0 },
{ name: '超时错误', value: error.timeout_errors || 0 },
{ name: '解析错误', value: error.parse_errors || 0 },
{ name: '空结果', value: error.empty_results || 0 },
{ name: '未知错误', value: error.unknown_errors || 0 }
].filter(item => item.value > 0)
chart.setOption({
tooltip: { trigger: 'item' },
legend: { orient: 'vertical', left: 'left' },
series: [{
name: '错误分布',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: { show: true, formatter: '{b}: {c}次' },
data: data
}]
})
},
initCompareChart() {
if (!this.testResult) return
const chart = echarts.init(this.$refs.compareChart)
this.charts.compareChart = chart
const platforms = Object.keys(this.testResult)
const successRates = platforms.map(p => {
const concurrencies = Object.keys(this.testResult[p]).map(Number).sort()
const latest = concurrencies[concurrencies.length - 1]
return this.testResult[p][latest].metrics.success_rate
})
const avgLatency = platforms.map(p => {
const concurrencies = Object.keys(this.testResult[p]).map(Number).sort()
const latest = concurrencies[concurrencies.length - 1]
return this.testResult[p][latest].metrics.avg_latency_ms
})
chart.setOption({
tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: { color: '#999' } } },
legend: { data: ['成功率(%)', '平均延迟(ms)'] },
xAxis: {
type: 'category',
data: platforms.map(p => p.toUpperCase()),
axisPointer: { type: 'shadow' }
},
yAxis: [
{ type: 'value', name: '成功率(%)', min: 0, max: 100, interval: 20 },
{ type: 'value', name: '延迟(ms)', min: 0, interval: 500 }
],
series: [
{ name: '成功率(%)', type: 'bar', data: successRates },
{ name: '平均延迟(ms)', type: 'line', yAxisIndex: 1, data: avgLatency }
]
})
},
destroyCharts() {
Object.values(this.charts).forEach(chart => chart.dispose())
this.charts = {}
}
}
}
</script>
<style scoped>
.dashboard {
padding: 20px;
max-width: 1400px;
margin: 0 auto;
}
.header {
margin-bottom: 20px;
}
.header h1 {
color: #333;
margin-bottom: 20px;
}
.config-panel {
display: flex;
flex-wrap: wrap;
gap: 20px;
padding: 20px;
background: #f8f9fa;
border-radius: 8px;
margin-bottom: 20px;
}
.config-section {
flex: 1;
min-width: 200px;
}
.config-label {
display: block;
margin-bottom: 10px;
font-weight: bold;
color: #555;
}
.radio-group {
display: flex;
gap: 20px;
}
.radio-item {
display: flex;
flex-direction: column;
gap: 2px;
cursor: pointer;
}
.radio-item input[type="radio"] {
margin-right: 5px;
}
.radio-item .hint {
font-size: 12px;
color: #888;
}
.concurrency-buttons {
display: flex;
gap: 10px;
}
.concurrency-btn {
padding: 8px 16px;
border: 1px solid #ddd;
border-radius: 4px;
background: white;
cursor: pointer;
transition: all 0.3s;
}
.concurrency-btn:hover {
border-color: #007bff;
}
.concurrency-btn.active {
background: #007bff;
color: white;
border-color: #007bff;
}
.platform-checkbox-group {
display: flex;
flex-wrap: wrap;
gap: 15px;
}
.platform-checkbox {
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
}
.actions {
display: flex;
gap: 10px;
margin-bottom: 20px;
}
.btn-primary {
background: #007bff;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
.btn-primary:disabled {
background: #6c757d;
cursor: not-allowed;
}
.btn-secondary {
background: #6c757d;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
.btn-danger {
background: #dc3545;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
.stats-bar {
display: flex;
gap: 30px;
padding: 10px 20px;
background: #e9f5ff;
border-radius: 4px;
}
.stat-item {
color: #333;
}
.error-message {
background: #f8d7da;
color: #721c24;
padding: 15px;
border-radius: 4px;
margin-bottom: 20px;
}
.content {
margin-top: 20px;
}
.platform-selector {
margin-bottom: 20px;
}
.platform-selector h3 {
margin-bottom: 10px;
}
.platform-buttons {
display: flex;
gap: 10px;
}
.platform-btn {
padding: 10px 20px;
border: 1px solid #ddd;
border-radius: 4px;
background: white;
cursor: pointer;
font-weight: bold;
transition: all 0.3s;
}
.platform-btn:hover {
border-color: #007bff;
}
.platform-btn.active {
background: #007bff;
color: white;
border-color: #007bff;
}
.platform-data {
margin-bottom: 30px;
}
.platform-data h2 {
margin-bottom: 20px;
color: #333;
}
.overview-cards {
display: flex;
gap: 20px;
margin-bottom: 20px;
}
.overview-card {
flex: 1;
padding: 20px;
background: #f8f9fa;
border-radius: 8px;
text-align: center;
}
.overview-card.success {
background: #d4edda;
}
.overview-card.warning {
background: #fff3cd;
}
.overview-card.danger {
background: #f8d7da;
}
.card-title {
font-size: 14px;
color: #666;
margin-bottom: 10px;
}
.card-value {
font-size: 24px;
font-weight: bold;
color: #333;
}
.card {
background: white;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
margin-bottom: 20px;
}
.card h3 {
margin-bottom: 15px;
color: #333;
}
.data-table {
width: 100%;
border-collapse: collapse;
}
.data-table th, .data-table td {
border: 1px solid #ddd;
padding: 10px;
text-align: left;
}
.data-table th {
background: #f8f9fa;
font-weight: bold;
}
.data-table tbody tr:hover {
background: #f8f9fa;
}
.data-table .success {
color: #28a745;
font-weight: bold;
}
.data-table .danger {
color: #dc3545;
font-weight: bold;
}
.data-table .warning {
color: #ffc107;
font-weight: bold;
}
.data-table .data-preview {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.scrollable-table {
max-height: 300px;
overflow-y: auto;
}
.charts-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
margin-bottom: 20px;
}
.chart-card {
background: white;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
}
.chart {
height: 250px;
}
.chart-large {
height: 350px;
}
.error-details {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.error-item {
display: flex;
gap: 10px;
}
.error-item span:first-child {
color: #666;
}
.error-item span:last-child {
font-weight: bold;
color: #333;
}
.summary-card {
background: #e9f5ff;
border-color: #b6d4fe;
}
@media (max-width: 768px) {
.config-panel {
flex-direction: column;
}
.charts-container {
grid-template-columns: 1fr;
}
.overview-cards {
flex-direction: column;
}
}
</style>
代码运行说明
- 安装依赖:python安装pip install requests numpy vue2安装 npm i
- 替换代码中的API TOKEN为你自己的 Dataify API Token
- 修改TEST_KEYWORDS为你的实际测试关键词
- 运行脚本:python server.py
四、性能测试与数据分析
4.1 性能总览
本次完成5大平台全量样本单线串行测试,无并发施压场景。单线测试能够彻底规避并发抢占、限流误伤等外部干扰,精准定位API本身的底层性能上限,数据可直观反映服务原生稳定性与响应能力。下面从平台品类、冷热样本两个维度,拆解实测核心数据。

4.2 跨品类平台性能拆解
从整体测试结果可以明显看出,不同采集赛道的平台,在成功率、延迟两个核心指标上断层分化,性能表现和平台反数据采集强度、页面资源体量、接口调用模式强相关:
① 搜索类平台:综合性能优,生产环境适配性强
Google、Bing同步接口的优势十分突出,低延迟、高稳定,适配实时类业务:
Google:全量请求成功率99.9%,零报错零超时;平均响应1.35s,P50低至1.14s,P90仅2.09s,整条请求链路波动小,稳定性拉满
Bing:成功率98.1%,仅少量解析类异常;延迟表现优于Google,平均响应1.01s,P50中位数延迟392ms,是本次测试平台中响应速度快的服务
究其底层原因,搜索引擎页面结构轻量化、静态资源占比高,限制策略以频次限制为主,无复杂动态校验逻辑,因此聚合接口的适配难度低。
② 电商类平台:性能短板明显,生产隐患较高
电商类平台的自动化数据采集可能违反其服务条款,这里仅做测试,生产环境使用前建议咨询法律顾问。
Amazon异步接口是本次测评的短板,无论成功率还是延迟,均远低于其余平台,无法适配高可用线上业务:
成功率仅69.8%,累计51次失败请求,错误率高达30.2%,是这些平台中失败频次高的服务
延迟数据离谱:平均响应72s,P50为35.53s,P90直接达114s。即便适配离线采集业务,该延迟水平也会大幅拉长数据同步周期
核心问题根源:亚马逊商品页DOM结构层级复杂、动态渲染资源繁多,且平台针对采集的动态指纹校验、IP风险控制策略严苛,大幅提升了接口解析与采集难度。
③ 社交/视频类平台:延迟偏高,稳定性中等,仅适配离线业务
社交类平台的自动化数据采集可能违反其服务条款,这里仅做测试,生产环境使用前建议咨询法律顾问。
YouTube与Facebook均为异步接口,受平台资源特性限制,延迟普遍高于搜索类平台,整体性能中规中矩:
YouTube:稳定性拉满,成功率高;但受视频封面、音轨、简介等海量动态资源影响,平均延迟25.16s,P90延迟43.20s
Facebook:成功率97.7%,存在少量解析失败报错;平均响应12.47s,P50 6.63s,P90 36.54s,高低分位延迟差距较大,性能波动明显
4.3 冷热样本性能差异化分析
结合冷热词对照测试数据,两类样本形成鲜明的取舍关系:冷词延迟更低但容错率差,热词稳定性更强但响应耗时更高,该规律适配本次测试平台:
延迟层面:冷词平均延迟普遍低于热词25%~50%。冷门关键词检索结果页数少、资源体量小、无需冗余解析;而热门词汇检索结果量级庞大,平台会附带推荐、关联内容,直接拉高接口响应耗时
有效数据层面:热词有效数据率比冷词高出2%~10%。冷词易出现无检索结果、字段解析不匹配的问题,触发300解析错误;热词检索结果基数大、结构稳定,基本不会出现空数据异常
平台差异化表现:Amazon、Facebook冷热偏差显著,冷门内容采集失败问题频发;Google、YouTube优化程度更高,冷热词兼顾性更强,冷门内容索引覆盖与解析兼容性更完善
4.4 并发压测补充说明
本次测评仅完成单线串行测试,未做多级并发压测。单线数据可用于评估API原生稳定性与基础响应耗时,但无法反映高QPS场景下的限流阈值、并发报错率。

五、返回数据质量核验
单纯统计成功率与延迟没有实际业务意义,数据字段完整度、匹配精度,才是决定API能否上线投产的核心标准。本次通过抽样核验的方式,校验全平台返回数据质量,详细结果如下:
5.1 搜索类平台(Google/Bing)
两大搜索引擎接口的数据质量表现一致,整体达到生产级可用标准:
- 检索相关性100%,返回结果与关键词精准匹配,无无关冗余内容
- 核心字段全覆盖,标题、外链、摘要、发布时间、来源渠道等基础字段无缺失、无截断
- 无重复推送结果,地域定位功能稳定,可精准命中指定国家/地区检索池
- 综合成功率:Google 100%、Bing 98.1%。
#实际返回数据 节选
{
"platform": "google",
"keyword": "人工智能",
"success": true,
"latency_ms": 2034.18,
"error_type": null,
"error_message": null,
"valid_data": true,
"response_data": {
"ai_overview_cost": 0.00012421607971191406,
"cache_status": false,
"code": 200,
"google_ai_overview": false,
"images": [
{
"global_rank": 1,
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5OjcBCgoKDQwNGg8PGjclHyU3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N//AABEIAKgAtAMBIgACEQEDEQH/xAAcAAABBAMBAAAAAAAAAAAAAAAFAAMEBgECBwj/xAA/EAACAQMDAgQDBAcIAgIDAAABAgMABBEFEiExQQYTIlFhcYEUMpGhByNCscHR8BUkM1JiguHxcpKi0whDc//EABkBAAMBAQEAAAAAAAAAAAAAAAECAwQABf/EACERAAICAwADAQEBAQAAAAAAAAABAhEDEiEEMUEiURMF/9oADAMBAAIRAxEAPwDs9bCsVsKUobCthWorNEDNxWDWMgDmmXnA4FBtICi2YkVWJZ+nzoJqG0MWjxj481OuJj2OKF3cwIzjn3HSseafDd4+NqVgu/Yup346dhQi4FuFB8z1A9KKTjexHHq4yR0qBLp4JINwvPOQtYJW+pHrRpKrH0FhPCGuvPaRwVDJGSARyAKw8Gl3MbNOsYddypvymBjIyARz1ocdUmiRbZI1cRsQowc/1zTNzqknrjIiTe4dgPVjH5fnn5VRZI/wjLHPrsH+IY7aK6RbAoIPLB9LbvV8zQKa4lQH1cfSjWqzSXtyZZXTzSCfu7VbnHHGO3Xigc4aJiGXBPNRl7tF4cjTCeheIn02b9fI8sJPrj3Hp8OQPzroWl+INCvdogujHK4G2OZmU59hnIPfoTXHLnbkEdcVvpMRmugsKqzhXOGGQcD2PWtmDK1ww+TgjPtnb5byyj3B5UXZwxL9M1sZIWGVHBAwcnnIH8651pur3tsyrf2wmgPHlmQEpxj05Px6H/voLS+ZAJYEafcMjBHX2OTnPzrfGVnlzhqPiKNt4MYKsNpBOQw9qywGQ2Bk9/rWVPHqyCecGtJHVAWwCQDgHvViJg01OAYznsR9OajNqtqrvHJdW4dCAwZtuMjPc1ob+1m/Ux3lvvb7oSQEk/LPNEVjB0uwc75oDI56s5Zye3Uk0qfNoHJZ/K3E553fwNKuOLpSpUhUixtWc4FajqM9Kh6hqNvaeiSRVc9AOtCTUVbYVFydJGLy72HZnFQHuBnJaoMt5E7Fkfd71BmuST8K8/JnbPTw+MqC0t2CNoahtzcAcFqiNPmmJZNykDP0rJPK2bIYIo3M6tIPWo5B5OKcaRQV/Wx5GMYn/wCKHBdk8cimQhSCSq4OfgO9T5GmRN7faQVALbRGTj4gc+9GDtBypJorknEchBXLE575X+s/89CxOWVpFAKKhBYDnAHGcjr1x2/OpKJ5rsm5WXJbccekHAz8e3Tv0qPdQ4dRw7bR0KjHfd0wR8u2OlTpj2vRCuHUpLtGU6RnhTjI6gd8dfn+MWTMqIjkbHO1OcqrAcnOeB0z8/hUu4ISJWdgrSD1HCv05wMnrjbxih87QrumxvAfALbVDnK+nbjoOp+dUSEBExbzMM5jIPOcjB9z/wA1to8jR3RZUkJETfcfYRwOQeKj3ZkB9RJZhnnrzzn65z9am6Qtl5ymATSXG0+lhhB8iATmtGNdIZXwOwM32hVa3lCvgEPctjn/AHcducUa0LWF0jVZow0YgkPrVrouynAwR1+WPYigMLubqICGNPUPU0hwPrs4+tO310YzejzYPREWK/aAQRgcfd6Vsjw87J3h1G6njaENG6tkBhtOCQehpia6gEbb5FDgfcY8mqt+j+7bU9EW1nkeKeFWCMGwwiONpHv8Dj95qxTabcpZTRf2ndMjgg58sHB+ITjr/KtCdmSS14VvVkdL2dnubcguqkvG24egHA2rj496WllE1K1T7RaOxc4Jjfc3HY7QAaY1OO4N1Ih1G+JDLkiFDxtz14/H6VjT5pU1KCMy3THO4M0QUH4Eg5A56iivYWW6WcRuV8maT4x4I/M0qgW148Pmo8kCuH9Xmy9TgdDjkDpn4GlVCZ0EVkUqwTipFDWaaOIKZDgswVR3J+H51Q9WnFxqkvmyqcMVO34cUe1LVPJgvb4KpS1/UwerO92xkn5cfTNc6V5JGZt7Fupz+0c9/j/KvM83InUT1f8An4nbmGX/AFTExPuGaS3BZwc4NCUu3A9RyPetop8ydcZ4rBtbPV1pB5ZIkUNKFdzyAWwqqffHJp2SBJy4RY0cEqSpOM9gQf30NErHY4kAZjuXJxkDqPp7fEUSSRmvJ5Zjsy4bghtijnc3ywK0JJoxZJNMj6ayi5ZWTDAHAzwCB/3RJwgEYSMoxlZjuiC7V7cAcc4A9+euOK6LyRpmmUuqmQtuH7GTmsTam8SN5W1SBjdGoBGR+RrseRRQcmOU5WONNBBqcgt1B/vD7sdNucgAj2IzxQfUhJcxphHZ1Lk9MYwOnOeg+NRpL8IoEalVDZC54zzz++o+o3f2u0Uxw8xD9Z24+ApHO0yixtNWaG6cRNEN4fbhcdTyOCfgAfxoXdNJM2597sRnDA8jr/QorDcW1tbRO+z1AkMFyTzz+dBdSuXnnL/dAzgHAIHz70yiC+mJrOaZDiHHo3btvXk9z+OKaFu9i7yXMAkjLFeRnb7N0PtUeN2eYHdng479jRfTorTzY2ljXyQw3F+QOmcnt7/UfKtMDNlBserILlHt9NtklDAx+WF4P/rUibUdRmbzYrmRGcBfLjRSq8AEZx8QPrUHz0ihc5VphOjcryyjPPwBoh9r05riab7RGwWPMbNnhsL2C56jopxx860RMsgj4D1M2etacXSNQ0z20jLlc+YAUJHQEsD+H49hncSQy4B7Z7Ac1wOy1FIL3TnV18sNmQE/d9YZTnPUEAj/AJrvkbNcWgMq+WWjBIDZxxnr7f1xWjGY8/tFY1Cza6aSRnuIXZs7o5k4OMAcg8d8e5+lD4NFkS6WdNR1AHhQmUwpweScYI68Y/jmymxJvJJkdRG8eAQ3qBz8ulRk0uZLe1jWUbo5N8mG4IyfhVEiVkNrWQYD3d2SB+0sP/10qkz6ddtcSOJ8Kx9I8w8DA+FKmoFl5vr+3sImluJMADIX9o/SueeIfFN1fs0cBMEA6BT1+dVvVdbvL27klld8uenYdeKhpId43Mcnpn3rxvI8mU/yj3PG8SMUpS9lq1K7I8N6XZIzM7s8rcfeJZsfgM/iKDRkhWKAhs4OfasWU7SzKjnIRQo/D/gD6UQ3RwRYbpms7/bs0xrGtUQo1c8nrSkCq245464rWS7UOdtRZLjJzUqotbZOW/mg/wANjtP7PDD6qfrWZNXeZAjOwTOSixqMn4+9CzNmmmkPYE/Ku2kdrH6gjLert2oXxnOCMA1Glul2lG6GoTOy8YI+YrQiYjIjkI9whpetjUkKZ8sAM4A6DvTKq0kL7ZAMHJBz27/LmtZRMASYpMD3Q1DdnPpAbBOcYPWqQiLKRiTLsFJ57AdOf+61kS5nYKkZlkkOF9WWY+wptpnkmUSOTyBg/wBf1mjGk662m3izW8yRws5R7VyzKEPfJ4JGTz8O4Na4RMeSbXpAKazvLaQRyQyQzdkYFCOM9D8DTRiumTqQuD/+wflk/Or9aeNLPTIPKsj58rXD5nnXlk4AfHY/6emAPeodxbjVCCLr7RLIDiR5U/WD0kEqxzGOOmM9j1ArSoL4ZXkf0q1vFBJao1wreczkFkAJI59yAeePhkmiFtBof2Ym5imDhWGYVByxOEIZk4TB7rnr7AEhbf2nbQ7orqyjk4B3NBI59snBPQ8fEH63LwxZfaNAhMlnHIxJV2ktfMZtrtt53jOMe3A/OsImeeQ5cYbZo4xawt5xYKV2kjBHt256ck9+M4HoVU8tAn+QYPxrkmuLcf2/PpNukVtEJUCxrAsSgbFYk5c8LyxIOQB0x924+ExNp8JWW5uJLe5VZLaN43ZgmQNxJ+6W3KdueKtBUQyO0Wk1qa2PfPXv860JA6nFVRnMGlWNy/5v40qJxX/Hfg9k83V9IAGPVc2/Zh3ZfY1zaaXacjO09M+9dx8Y6rDpekTKzATzoyRjvyME/IZrjUMVuj559Pv+6vK8nCtvye14eaWlS9Eiw/UwBz1PNYuLze2Kj3l0j/c7VD87IrM4VxGuLt2yS8/NNNNUdpKZaXmpOBfZE3zaws2JEIJBDAgioXm1gSAuoOOo60NAOYejNkPs7XG5RgmRBhlwBgD0+obiD16AgjpUW6jWFzlMtsQMGGcNt5we/bmtL5gixII4syKPUF54+OaYwqRvuw2059PY9PyxVlAjubBI2U7sD2GBnP8AKo88fULs2tkDABPTjp/XWsklncZGeh3AcfL2PyrfDlSdodUQltx4wOx9s1RRJudga4JMjNJ1ZickjP8Ax9aLaHY2V3p00tzGhkWQgMZGU42g9mx360LihFxdSIzKMHPbJGQD+RJ+lWDR7SaG0kjW5VQxO47UO05OWOenp2HFXhEhkmCLfSI2083jyEqi7mXAHbI/Irx/q+FFdMs7eSJpbedowwUIj4LsNoIBx3OeePb6iYxam5W3vv8AAMZjds4aGSNQpJ+ewfPI9qWn63JZ2VxZxz7i3ptizYwSepPGMVVLpBysJXLMAyu0Tog9EhY5VfZmyDnHI3dmOeKvOgy6dJpUe+aINvb/ABfs+SN7gffGegHU8DHTIrm1xAziK6aOZoiiN5xm4eMDBIXOcnbnHXnHBq229hZQWqXMMDGchziSTOzaXyAWOBnanPT1AntisTPPpD1h4o9U8STWHln+6xhPKaLnIiB/wuDn1DoevY5zZdS8R3TLDNptskcDTxqpcH7p6Z6BcnIwaq2pR2unakkM8xjhvopI2Z/SsZZlKMR2G6OMk9drcngUS8D6nc6bqlxpGrGQeZuJediWjKAnGecjGfqPjTpiS6jpaEnad2VPI4ximdTlaCxklQAsi5AOR+YBob4f8VaP4gd47G4zKgyYnUq23puwfz+J5ohrGBp86nO3b26/vH76qQ+lMfUYpW3zeW7HuZ2H4AqcD2AwPrklVo9pbMctvz3AcgZ79JaVAIa/S1cQu1olvMpvYd2+E/5GA5z78dPjXMzcu0bAqVK8EEVff0saEtvfpqySu32o4ZD0UqB0rm8j4HzNYMquR6eBpQVD3mkgZrAk5qJ5nNZ38VFxNCmSHkpguc8U2z02XOeKXUfckNlRuPyp2yZTdR713Lnkfu/PFQwsj+lVLbPanbbzBOGBCsuSD3BA60VEDnwuSabb3VnDc3E62kHCo7qztIe+1QefnTlzoqKkn2SRLtwu4xtC8MhA6kKT6uPY5+FMyTs9355d4YpJPKh8sqrQQ8ADP7JK46ckADvgnPPdtc1e2sbiaa3gV7hMLvMbgg4U+3qbjtg46nOhQRllkZV7OzjuJIIkRTJIQijY4wzHABP4H60VuobdbSZLaN/LRTIZMBFulA9QxwUwuSM7s460O8ReTb61ei1Mg23JKlVxtJy2OvGDxjPY1DvtSlkLcRQNICZZEhKmXnnOWwASAfSADjniupIDk5AvUr4CSZrVY4Y4ZiPSoDMDkZz2+Pehw1K5Tzcbism4HacdQAQfoKMxxWU8EzTQxmV9zGeXKKrAEgexLYPHOfhjNSNHWwEbJNZB7krugFygMROCzFueBtwe/TjkjBS/hzkinSSOWZnPqJJORTRmkU5V2B+Bo94jWxsryG1stkipEnnPgkebzkjj2xx75HagExQsSowc9AOtNQt2atPMVIMkmCMHk0b0/wATz6bKz2pDITu2TDIViACQQQR7ZBGRjPQYrxJBOPyFT57O3hPls0jyRZDsGAGR3HB4+OecdulURN0WLSnufFV5czyTiGSKNRhbZXTBJOMFs9cnJyTWsFlcRX91BBJcSfZZCsjsqp6gTzkv6ThSc56CtPBlxb2Mt2PIkuPNCrkBSExn4jGaJwXgtr15o8wLdXUy7pBgR7zEQfYcDqTjqaoiUmQjDLpN/Z3ellTdq5KhCcowJB3A9AeRyffp37THffbNGjvWtGDvGWe3cc7h1X8Rj8K5Roti9h4laDUZLl551OGSQkMSfvnaMjgH5DPauj+G3WGK5hYZiSUBCPVn0jPyOePpTIjMzdSwwS+XFpcLLgHJiHfn2pUaDK4yF4/8v+KVOIVj9K2qxyXUdgv3bdct/wCTAcfQY/GuTXD5bI6Ua8bazDqGvXdzau7QTtvj3jBwRyPocjiqq0lYpdZ6OPiokb+azvqH5lbB80mpTYkF6bZ603cVqzUuo2wR0l/70yyPEiMCu6Viq5x3I5FWKzsSmW0y/gVS7B9l0GLqASDwB7HrznntVIJPbrRfRZ5YLe4milMcgZFDA49Ofz5xxTRQkmXScw7oknuonKIoLMhnilwDtYY5Q/THetv7U0yzL+WYruZGWSKK3ikysi/daRzgnHPAyeeMdRXWM0jeiRzGUUs7uSB6QTk/0envQu+1CaK9cJcS7FYnhz3+vtj5U/onVhKO4t5Z7qTUJC88oLBmbbl2OST78k03NqPnYEiwnaCMCMHJx1yee1CV1O6Ybbi4leFgTl5Dz+NbSSqrCSCWT1AgESlF75zz8PrXUGze7kjZpYnJV1kKh0VVC++VHXk44546ngU9plvIttcXU27+6SRgBdu0Fn289yOeOKHeU0UiRP5BD45RwSTtzyM/n/OsjU2jsRAEU+ZtLNsG70HK4PX/AKopHNsiairLJl/vMAe/TFQSaJ61qbal5CyxQx/Z4xErRJtyo6Z65NDmUbeJUPPTDZ/dTULY2x4q3afq1pYoFuLSa7mgeRoBJIvlROSrAgYyDuRc89CaqXluf2CR24NH1sJZZ5kLCNhIQBK20Mckdeg+Z4p0icmS01vUHgee/uJLuKORU2OcAFlz1+SDPBHIOO9aX955tnHcbG23TurrgEYjCBcE9wGPPxNXS2s9HXQILHU9S0priC3BTbcxugk/vHXnnaJVPTqBjOK3utP8MXMdvHNfWLxW2Ehj+2ICoxGnqwepEZ5+tPRJyAPhG/M+svLcmWbFuWCMSdx9PC9hxx9TXS9Ethp9jDGfMRm9ToT6tx9RzgZ657Djt3of4YsrW5jlNvcaXJcQp5Q+xxovG4+o7ScA4B29uaPw28uMXBBTOV49+f40yJyZhSBnBlT3CyFf6+vNKpix4GB0pUwlnmyaTeoDHPeifg3RT4k16PSRdrbvNG5jdkLBmUbtvHwBP0qCNHvlUmRUXjkF8VN8EaidH8aaPecYW6VH/wDF/Q35MT9KypdNzlwud5+iDxDFuaOWyucdNspB/wDkBVc1bwdr+jAveaROsYHMir5ij/cpIFenPge1YNP/AJomssjyM+7AJAx8qaJr0H46/R9Ya7bzXWnQx22pgblKnak/wYdMn/N+Nee7mJ7eVo5FKuhKspGCCD0qbhRWOSzUmlHNLGMKcfStN1JXZGDRsysOjKcEUEh7JyXErMoaTClVycD/ACimpZC7Fzu3Ek+rv7Vho1kjR4pECBVV1LAFGAweD1B6gjjnHaozBieq/AbhxRoWyRHI80Hkx7m2nlF9sj+NZSMRtLHIm9QQNpJ4I98ED8ajRq6yKVcIwPDBulT2gbaZTbxyDP3sj1fEgHFFIDY1axpHNuKq5bJ8tmOMd89x9ajX0ySzt5K7Yl4QDpipc0EzRbwixxMOfLYDPw55HTp0rWHSjLLHGNymRlXLzoBycUaF2B0x/WGmSas9z4Uv3uriOK1lG3O3dMnYjr9Dz15+tanwTq6zMvkq23glZFAP1+oopAckStFu9N/sm2gvYViVJ4zczDLNNH149iCB90jg4wSTmTruq20jW9zpVnBbRou3bJhpWx3bdkdF6jPXk54odLaS6W/2eZ281MCSJlDDoCOhwatuk/o/udV0SC+j1BYpZtziGeA7CCeDuHQEDpg09E20c2uLyVZHG1Ad3Ppp2yGoX86Q2Nqtw5O0BEyST2o/d+AfEC37Q/2W+4kfrlYNCTjk564+VdQ8BeE7XwlprS3hEmoz/wCJIFJVB/lXjpjvRSFckZ/R94Zm8PadK2osv2u6CvIqH/CHOFz3POSRxnpnGTaQoYdWJ7+s1DXxFokzokOr2EjuQqBbhCzE8AAZ6k8VKaeMAkE4PHA4NOiTYm4wPV0pUPa+jiOzy2OAPb2+dKiA4Bem+UHzQce+7Iqb4IvdKtvEFqdftY59PkcJIzsV8k5BEgII6EDPwzQOe4kkYh3yM8CmQ2Gx71Bmz4ezQeAeD8R3rJNU79E+rtrHgbT5Zm3TW+62dvfZwpPx27at+adEDO7Hv9K8/fpo0NdN8Tm7iQCG/TzQR03jhx+OD/ur0AcHr0qn/pP8PHxB4Zm8oD7XZEzxD/MAPUn1H5gVzQYypnmrPGKyOlayLtcjIxnI96c6R5qVF7Gmps1swyufc4pKhkyo25AwNzYo0dZopw6n40a0+UJHIrSjkAgMSMnJ6ChsFtJ5kbnG1XAY8YFX3TNCsL+O5ujA9w77lggjbYBtABYkck5I470UhWwI+r2E+jvbNC3msm3knrkkY/CoEKz317bMIViiFzH6gwUZyOme/OaMRaZaDUriK6gaFY7dyAqnMcgOOeM4HX44PtT66bYXkOlixubuGR4lXzWiIBPJ3DpgZ6YphbLBcRJ5slrLKsW3cA4bDuSAcdf9X0wKnadal9UntNwAZX9RPJOF6+3BPy496Fw6M9rbybruW5ucjLSueF45GehHf5UQ8N6VFLfRz31/ciORmCbJ2G4j9njn/oUUI2EF8G2GqztKpJt2mifzwTllUbWXn3OenH4CpigW+YLd3MO4q2G/w1APH7zj4Zqz2UtpH/c7V4/7v6fLXjbx09qFQ6UYJJBJNCfOkJ24Oeh4/OmEsG25wf1d1I7bFGPM6c+/8e9R4/MF2GnkkQ+f6Ru+8Pl/CjCaI0MvmrNDs8sKAFPXjp8+TTbaSySF55I3YSBhlCCvPbjj511HWc80lpTqdjhpCv2iPILycjeP9VWHxjrdzpUDtZzGCVZxAjHOBIy7ixHQ4UrjjGWJwSoptNJ0u3vEuIZroRwMsnmOY9nHP+TI6Ec/THY2tt9quZovMjjkSVZ4iVyxVk25GCMcmVe/Q8VxzA2grNc2bzXelxys8h2G9y8gXAAz6eOmce5PToFQiHxveaVu0/VbKKO7tyI5ArkA4AweTzkYOe9KuAcrOe1TtJ0y81m+isNNhM11KcKgOPmc9gOp+GagOfzrp36BNNFx4ruL6RubS1byx1yzkLn8M1Oi7fDsXgfw3H4U8OW+mJIJZQTJPIOjyN1I+HYfAUezWCRzWM05NmxNYzWM0ia6gHmj9Inh5tE8V3lvGuIWkMsH/wDNuQPp93/bVavB5e1D1AruH6Z9IjntNP1MKPMSX7O+3qVbLA/Qhv8A2rjV7D5l1NNK3lx7vSg647fL60rRRMhWUP2mTyzJGg6kyKSCPbgVOg0+GVfKimtWuEJJBLFQvc9OefgKGXN56THABHH3Hc/E1GixuByVBGMgZ/iKAQjqltJbXCia4il+63lx5BX4AYxx0qRp2vS6UZBaMGiLblzlWB6ZBHIyOtC2WNyWaV/huXP48mo+VGQefkeMUTizReJ7pbiSaPyjvjdZEKHDZP8AIDOaJzand6lZaYlvIkl2mQpUOd+Pug8dOfqfnVSt5YEWVLhHBZhtkTBaMjI7/eHI4yKM2ep/Y5VeG6gEm3C+XakucjtwBnn68568cIF9evore0igkEm5ZGCMRhWXAIxwM4498Z79KM+C9QvXvrKF4d1k0rBgoK4Ow4x8cgdP31SLyK4vo3vkiMVpEzBYy24rk8k+55H5c96snhrxZb2DwSMhxFIDtHXaTyPwJ/DtnFFAZ13T2VtWuMWXl4fhgevHLfDP8aZvbaaS7Uk5Dcbx+zxnn48GpMOq28lqbhwZFVguY2PpbIAGD8x/WKnW5iuYI503BSNyhuuDz/WP5UxMhSxzHT3EbB5Sh2sRty2B8eO/NDtNstQhdzP6UOPQzAk+rORg8d8/PpRy8lS2id2QsMZPOMDvmmIbmKXYYrdmDOQxzwhHBz/XamOspd3otw2rfZIJilvggx9QRtY8j9ruOoz8cnJ6WBAY3YOHjDKrKx6Ht8eQD26UVSwSFCsEkyIWYhQSQM9euTnPPzNZa1RvvMzHPDNyVPsPYV1Asq97oVte3DT3FrFNI3V9gyR2zwe2KxR6yvrS9WVonYCOVo2yvcde/wAazXUdZ5jGTwK7t/8Aj/phh0jUtUdcC4lWCI+6oCSR8y+P9tKlU0WZ1fNImsUqYURNVLxf46sNBRobYx3N9jCoD6Iz/qP8B9cdaVKgzkcY1/xRqGqzPPd3Tyue7HCqPZVHCj8aql3cFu/B7nrSpUo6IQ47fWkWx0GfpSpVxw7HAWBLq/J4yPx+tToNNR0LFkUBiqrySw9+B0pUqIGToPDt9dxpLZ2V3PbkH9bDbPIvBPHpzzx07VltLZJf1U0iPGFWSF4mV4yFAO5Scjpn60qVcAdi07Up1kitbp5YiPMkBPlqo92YnaPbJ98d6LeFvD1wNdgt5/KaVydodzskVkYell4YYzyD2NKlRQGddsdJu7ZJt5Uy3MryybduAW7D4fz7dAZhDLHtfqDWaVOIxueJJl2SdP8AyI/dTSWsMKosK7QvQe1ZpVwDdjzz1rUnilSogAkNpJamUAwKJJC+Nnv/ANVmlSrjj//Z",
"image_alt": "人工智能(AI) | 联合国",
"link": "https://www.un.org/zh/global-issues/artificial-intelligence",
"original": "data:image/jpeg;base64,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",
"rank": 1,
"source": "the United Nations",
"source_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASUlEQVQ4jWNkYGBgYGho+M9AJmAiVyPVDKAYMEIoWBg0EMlHiJHoBczApncgNjCiu2IgohHVFRS7ACNaUG1Cl8MmRhUXDOnMBAAGWhaU7a3JJQAAAABJRU5ErkJggg==",
"title": "人工智能(AI) | 联合国"
},
{
"global_rank": 2,
"image": "data:image/jpeg;base64,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",
"image_alt": "人工智能_百度百科",
"link": "https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/9180",
"original": "data:image/jpeg;base64,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",
"rank": 2,
"source": "百度百科",
"source_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAS1BMVEX////l5vsdKOH19f4nMOIAAt76+//////////////Y2vlcYecTIOFLUeUEFuDu7v2nqvGane9scOnLzffAwvW1tvMzO+N8gOuPke2rusGnAAAACXRSTlPu////////fwdNEyPIAAABGklEQVQokXXSWY7DIAwA0BhjMmD2Nfc/6UBCp5VGzQexeCy28PFzHvrfd5w/x/mECkBpjSZsOo+9PnZXtEqdzd6z540VnpUhQVlt2RtISqvWKMIXsB+AgMGuQ4CEHwqCegCYLNacjVaRBzai+ED00o+dpdLYpXBmAV5+hnOypAhzlDOBukClG2YNVnC5Qd6gq12nVmtnSgy6E2V8soLUtOmd51I/gk5NvesokpJyVkga8Flg9Z0bdnbCuWzeED0bQCVNo1i9My8ojhBGQxEqVSPteN2RLOmLrgltwV3fDdcEw3GCcWVB2dCkzYAIPQXEIgXDhpD9zIrZepczexH/nhASOx6ptTRmuvW++2mG2QoB1z/MYDfDt/b5BSlHFhgfSWPQAAAAAElFTkSuQmCC",
"title": "人工智能_百度百科"
},
{
"global_rank": 3,
"image": "data:image/jpeg;base64,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",
"image_alt": "人工智能- 维基百科,自由的百科全书",
"link": "https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD",
"original": "data:image/jpeg;base64,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",
"rank": 3,
"source": "维基百科- Wikipedia",
"source_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAASFBMVEVHcEzr6+v19fXCwsL///////8AAAD////+/v7+/v5MTEx5eXlcXFyqqqq2trYREREyMjIkJCRubm7R0dGWlpaIiIienp7g4OCJ1WD2AAAACnRSTlMA////v///1QhKpP3tdQAAAN1JREFUKJF1Utm2wyAIFCwkcV9i8v9/WrS256a34QF1hh2VWreFvmTZVqXWxzfc5bGq7RdOtKl/cWY09RsnuieARTIF0ZYMsyPbARCPnQ+x0LkQgdvlWlMYoWqKp2CWNQUnNzwKDAIbN7EL2ZDrvmDCTK4T93fhw0F/GpgE2pElxOx7PXH/lBtiQjkMd6JG+BBouovoIvwo7N2gZinEO5M0Vca/nceswWnNDZu9jMSz3QtCMt7UCwEx9sxe5oLXIYaBnE7avxKnDSNkgzcxF4WAr2Piy/1qbz/D3fd5ApPBDvmsGZ6GAAAAAElFTkSuQmCC",
"title": "人工智能- 维基百科,自由的百科全书"
}
],
"organic": [
{
"about_page_link": "https://www.google.com/search?q=About+https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD&tbm=ilp",
"about_this_result": {
"languages": [
"en"
],
"regions": [
"US"
],
"source": {
"description": "人工智能(英语:artificial intelligence,缩写为AI),是指计算机系统执行通常与人类智能相关的任务的能力,例如学习、推理、解决问题、感知和决策。它是工程学、数学和计算机 ...",
"icon": "data:image/webp;base64,UklGRqIAAABXRUJQVlA4IJYAAACQBACdASocABwAPtEutFooIagoGAEAGglpAAPhag38OpTAa4LU1EDlND7sAAAA/vYBJn72wN5WCZhxbfpmwOpA1vfrecvWOCVICC3+/rM6qzQWc8D3etVbTfBEeNbqJu+10k1h5hVXEe/3vpL5NJSAtUHvrJ6e/LkA//pZx+xvTn7v+qaIRjl47m2LoP17C7tcoPGgAAA=",
"source_info_link": "https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD"
}
},
"description": "人工智能(英语:artificial intelligence,缩写为AI),是指计算机系统执行通常与人类智能相关的任务的能力,例如学习、推理、解决问题、感知和决策。它是工程学、数学和计算机 ...",
"display_link": "https://zh.wikipedia.org› zh-cn › 人工智能",
"favicon": "data:image/webp;base64,UklGRqIAAABXRUJQVlA4IJYAAACQBACdASocABwAPtEutFooIagoGAEAGglpAAPhag38OpTAa4LU1EDlND7sAAAA/vYBJn72wN5WCZhxbfpmwOpA1vfrecvWOCVICC3+/rM6qzQWc8D3etVbTfBEeNbqJu+10k1h5hVXEe/3vpL5NJSAtUHvrJ6e/LkA//pZx+xvTn7v+qaIRjl47m2LoP17C7tcoPGgAAA=",
"link": "https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD",
"position": 1,
"redirect_link": "https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://zh.wikipedia.org/zh-cn/%25E4%25BA%25BA%25E5%25B7%25A5%25E6%2599%25BA%25E8%2583%25BD&ved=2ahUKEwjsjfDewOCUAxVUJ0QIHWhkLpsQFnoECB8QAQ",
"snippet_highlighted_words": [
"人工智能"
],
"source": "维基百科",
"title": "人工智能- 维基百科,自由的百科全书"
},
{
"about_page_link": "https://www.google.com/search?q=About+https://www.ibm.com/cn-zh/think/topics/artificial-intelligence&tbm=ilp",
"about_this_result": {
"languages": [
"en"
],
"regions": [
"US"
],
"source": {
"description": "人工智能(AI)是一种使计算机和机器能够模拟人类学习、理解、问题解决、决策、创造力和自主能力的核心技术。AI技术推动了机器学习、自动化和智能决策的发展, ...",
"icon": "data:image/webp;base64,UklGRigBAABXRUJQVlA4IBwBAAAwBgCdASocABwAPtE+tFooIigoFAEAGglnAM54dZJgQxvx8Urk0CJHAAg85EIVXM0cTglq/DM5DwAAAP79LUE5EOiL1+F8EsS98ZSlsEGeN7h+BRiqdzY56glZaHRnX7Pd/1E3m1kE1p8K/9KdlQpezjrLW4DMR3dKL3vn0OikOh1lkQPGo7C1vsPubeZHAE9T9qExiAALRLafCeT4zIyf8nCO+Z5VliqRMNqiKWOOXS7RAd5+vKVOIgrsibukqlJFtHn34IAsJsfeD/zrahP8WAwKhk9pRGYQotjWkjrRyFab56cPZLu79BRMfQX2qUPMG0m/0lTi/Q+pvn17j9xVbOVlI/jRdwN+6J9ibXvWdtmyOTTw0e1Y3pKAAA==",
"source_info_link": "https://www.ibm.com/cn-zh/think/topics/artificial-intelligence"
}
},
"description": "人工智能(AI)是一种使计算机和机器能够模拟人类学习、理解、问题解决、决策、创造力和自主能力的核心技术。AI技术推动了机器学习、自动化和智能决策的发展, ...",
"display_link": "https://www.ibm.com› topics › artificial-intelligence",
"favicon": "data:image/webp;base64,UklGRigBAABXRUJQVlA4IBwBAAAwBgCdASocABwAPtE+tFooIigoFAEAGglnAM54dZJgQxvx8Urk0CJHAAg85EIVXM0cTglq/DM5DwAAAP79LUE5EOiL1+F8EsS98ZSlsEGeN7h+BRiqdzY56glZaHRnX7Pd/1E3m1kE1p8K/9KdlQpezjrLW4DMR3dKL3vn0OikOh1lkQPGo7C1vsPubeZHAE9T9qExiAALRLafCeT4zIyf8nCO+Z5VliqRMNqiKWOOXS7RAd5+vKVOIgrsibukqlJFtHn34IAsJsfeD/zrahP8WAwKhk9pRGYQotjWkjrRyFab56cPZLu79BRMfQX2qUPMG0m/0lTi/Q+pvn17j9xVbOVlI/jRdwN+6J9ibXvWdtmyOTTw0e1Y3pKAAA==",
"link": "https://www.ibm.com/cn-zh/think/topics/artificial-intelligence",
"position": 2,
"redirect_link": "https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.ibm.com/cn-zh/think/topics/artificial-intelligence&ved=2ahUKEwjsjfDewOCUAxVUJ0QIHWhkLpsQFnoECB4QAQ",
"snippet_highlighted_words": [
"人工智能"
],
"source": "IBM",
"title": "什么是人工智能(AI)?"
},
{
"about_page_link": "https://www.google.com/search?q=About+https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/9180&tbm=ilp",
"about_this_result": {
"languages": [
"en"
],
"regions": [
"US"
],
"source": {
"description": "人工智能是研究使用计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能 ...",
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAQlBMVEVHcEz////////////29v5/g+xVW+ago/Dt7v1rcOnGyPYNHOAnMOEAEN+vsfNASOQaJuHT1PgzO+O7vfSOke7g4vsvSwBCAAAAA3RSTlMATdOge3b4AAABJUlEQVR4AXzS3Y6EIAwFYGfKrz3FgvD+r7oKSmbM7vbmXHxtShqW5fWmX+v9Ooz+rNdyzxnr/BEhunXOLnRVZEgi2lRl6o1ZALgeGp+Y+MByhXngzgC2O77QkFGALQU5opIxE3MRR2uRLRB55Uirir2xjO7Q20MgA0DSwDzeMmrudwPXjoGoRWyeiLz27o7temFmBTiOSY0DKYqK75swtkNV2oWUbCKKWrauK4VaT6OP23IOfVaftzWOVQ7Uc62kL2yFnU8hqPeK3Yr9wAC2PbkFBu3MlSZaFQqu5ANbR3CbCICSSEfRE9VPZMzJsG0P3KBjp6brtrxPTAJ11fsKWO+9VRQzkSyriggDfAYjU8d3j1xtTTkQtdVbm8z4mv9/6p/hyw4Aw58WL7uwFxMAAAAASUVORK5CYII=",
"source_info_link": "https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/9180"
}
},
"description": "人工智能是研究使用计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能 ...",
"display_link": "https://baike.baidu.com› item › 人工智能",
"favicon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAQlBMVEVHcEz////////////29v5/g+xVW+ago/Dt7v1rcOnGyPYNHOAnMOEAEN+vsfNASOQaJuHT1PgzO+O7vfSOke7g4vsvSwBCAAAAA3RSTlMATdOge3b4AAABJUlEQVR4AXzS3Y6EIAwFYGfKrz3FgvD+r7oKSmbM7vbmXHxtShqW5fWmX+v9Ooz+rNdyzxnr/BEhunXOLnRVZEgi2lRl6o1ZALgeGp+Y+MByhXngzgC2O77QkFGALQU5opIxE3MRR2uRLRB55Uirir2xjO7Q20MgA0DSwDzeMmrudwPXjoGoRWyeiLz27o7temFmBTiOSY0DKYqK75swtkNV2oWUbCKKWrauK4VaT6OP23IOfVaftzWOVQ7Uc62kL2yFnU8hqPeK3Yr9wAC2PbkFBu3MlSZaFQqu5ANbR3CbCICSSEfRE9VPZMzJsG0P3KBjp6brtrxPTAJ11fsKWO+9VRQzkSyriggDfAYjU8d3j1xtTTkQtdVbm8z4mv9/6p/hyw4Aw58WL7uwFxMAAAAASUVORK5CYII=",
"link": "https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/9180",
"position": 3,
"redirect_link": "https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://baike.baidu.com/item/%25E4%25BA%25BA%25E5%25B7%25A5%25E6%2599%25BA%25E8%2583%25BD/9180&ved=2ahUKEwjsjfDewOCUAxVUJ0QIHWhkLpsQFnoECCcQAQ",
"snippet_highlighted_words": [
"人工智能"
],
"source": "百度百科",
"title": "人工智能_百度百科"
},
{
"about_page_link": "https://www.google.com/search?q=About+https://cloud.google.com/learn/what-is-artificial-intelligence?hl=zh-CN&tbm=ilp",
"about_this_result": {
"languages": [
"en"
],
"regions": [
"US"
],
"source": {
"description": "人工智能(AI) 是一组技术,使计算机能够学习、推理并执行各种高级任务,而这些任务以前需要人类智能才能完成,例如理解语言、分析数据,甚至提供有用的建议。这是一项变革性 ...",
"icon": "data:image/webp;base64,UklGRloBAABXRUJQVlA4IE4BAABwCACdASogACAAPtEutFooIagoGAEAGglsAJ0zNDUHo10faCNQYYDzt/QpvGe86BMyG8Bi3gGuL4PBg1486VaJ14RavlT5EaTSqpwAAP7+wqDKQ9p7WLQsxxA8n/uu4iRY1nZ2Z2CwbhATCslg6laEuRzno6NKHv4KNP8gPkN4eKzFfGf5iZeZnl/5lQv/78ub1qtoBFxTdceyPhI5D1X3uO6Xe097rVfQOn2xlEAHt8t01GC3ZTcx3TKtPRPQlrQ4A26u6lIE2h1HnyY56GUHB/EBFCXcZAQFAv/rs7q0HAJMC2UQNCMgBMcwPHk83nHYMEc9dX60YFjjt43im8VPY91BKXTAd/pfYMJCbYCg1ifM2TY12s9+3UpKSIjlSf7lNoW2n7qFJ/hCz48jX6BSef3o5bt+pdh5p3exogmAh3jvOVJeNiRbyYRJgAAA",
"source_info_link": "https://cloud.google.com/learn/what-is-artificial-intelligence?hl=zh-CN"
}
},
"description": "人工智能(AI) 是一组技术,使计算机能够学习、推理并执行各种高级任务,而这些任务以前需要人类智能才能完成,例如理解语言、分析数据,甚至提供有用的建议。这是一项变革性 ...",
"display_link": "https://cloud.google.com› what-is-artificial-intelligence",
"favicon": "data:image/webp;base64,UklGRloBAABXRUJQVlA4IE4BAABwCACdASogACAAPtEutFooIagoGAEAGglsAJ0zNDUHo10faCNQYYDzt/QpvGe86BMyG8Bi3gGuL4PBg1486VaJ14RavlT5EaTSqpwAAP7+wqDKQ9p7WLQsxxA8n/uu4iRY1nZ2Z2CwbhATCslg6laEuRzno6NKHv4KNP8gPkN4eKzFfGf5iZeZnl/5lQv/78ub1qtoBFxTdceyPhI5D1X3uO6Xe097rVfQOn2xlEAHt8t01GC3ZTcx3TKtPRPQlrQ4A26u6lIE2h1HnyY56GUHB/EBFCXcZAQFAv/rs7q0HAJMC2UQNCMgBMcwPHk83nHYMEc9dX60YFjjt43im8VPY91BKXTAd/pfYMJCbYCg1ifM2TY12s9+3UpKSIjlSf7lNoW2n7qFJ/hCz48jX6BSef3o5bt+pdh5p3exogmAh3jvOVJeNiRbyYRJgAAA",
"link": "https://cloud.google.com/learn/what-is-artificial-intelligence?hl=zh-CN",
"position": 4,
"redirect_link": "https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://cloud.google.com/learn/what-is-artificial-intelligence%3Fhl%3Dzh-CN&ved=2ahUKEwjsjfDewOCUAxVUJ0QIHWhkLpsQFnoECCkQAQ",
"snippet_highlighted_words": [
"人工智能"
],
"source": "Google Cloud",
"title": "什么是人工智能(AI)?"
},
"results": [
{
"platform": "bing",
"keyword": "科技",
"success": true,
"latency_ms": 3178.42,
"error_type": null,
"error_message": null,
"valid_data": true,
"response_data": {
"search_metadata": {
"id": "iqu9ukp5zwu814gshcb8dwngcnl6q44g",
"spider_url": "https://www.bing.com/news/search?q=科技&first=1",
"total_time_taken": 1.468,
"created_at": "2026-05-30 15:38:26",
"processed_at": "2026-05-30 15:38:27",
"status": "Success"
},
"spider_parameter": {
"engine": "bing_news",
"device": "desktop",
"domain": "https://www.bing.com/",
"q": "科技",
"render_js": false,
"render_png": false,
"ai_overview": false
},
"organic_results": [
{
"position": 1,
"title": "长鑫科技过会:硬科技长跑,锚定人才与产业未来",
"link": "https://news.qq.com/rain/a/20260527A08O9D00?adChannelId=finance",
"snippet": "在AI产业浪潮推动下,全球算力需求持续激增,直接带动DRAM等存储芯片供不应求,行业迎来强势涨价周期。站在风口之上,国内存储芯片龙头长鑫科技的IPO进程,成为全市场关注的焦点。",
"source": "腾讯网",
"date": "4h",
"thumbnail": "https://th.bing.com/th?id=ONUT._BGkbqqZD2JxvMRE8QfDUw&pid=News&w=234&h=132&c=14&rs=2&qlt=90"
},
{
"position": 2,
"title": "在建设科技强国新征程上建功立业(弘扬科学家精神·全国科技工作者日特别报道)",
"link": "https://news.qq.com/rain/a/20260529A02LS000",
"snippet": "湖南长沙,科研人员在记录杂交水稻长势。 新华社记者 陈思汗摄 神舟二十一号乘组航天员武飞(左)和张陆在准备出舱。 张 帆摄(新华社发) 辽宁大连,科研人员在给国家一级保护野生动物斑海豹幼崽喂食。 新华社记者 韩 赫摄 内蒙古呼和浩特,老师在指导学生拼装直升机模型。 王 正摄(人民视觉) 数据来源:国家统计局 ...",
"source": "腾讯网",
"date": "7h"
},
{
"position": 3,
"title": "在科技馆,见证海南少年“智造”未来",
"link": "http://hq.xinhuanet.com/20260530/f980ef04b768435ca42d7300a52999e2/c.html",
"snippet": "5月29日,海南省第二十二届科技活动月和第十个全国科技工作者日暨首届海南省中小学科技节主场活动在海南科技馆拉开帷幕。 启动仪式上,人机共舞惊艳亮相,短片《科创潮涌自贸港》生动解读本次活动的创新亮点,音舞诗画节目《琼州科创赋 逐梦启新章》以诗朗诵、舞蹈和光影相结合的方式,深情演绎海南科技工作者、科学教育工作者、青少年矢志创新、勇攀高峰的精神风貌。现场同步联动文昌市、五指山市、昌江黎族自治县、三亚 ...",
"source": "新华网海南频道",
"date": "5h"
},
{
"position": 4,
"title": "嬴彻科技新一代自动驾驶计算平台Taurus量产交付,推动商用车智能驾驶加速渗透",
"link": "https://www.163.com/tech/article/KU3RL5RP00099BK0.html",
"snippet": "嬴彻科技新一代自动驾驶计算平台Taurus量产交付,推动商用车智能驾驶加速渗透,智能驾驶,自动驾驶,商用车,卡车,taurus ...",
"source": "网易",
"date": "58m"
},
{
"position": 5,
"title": "中国高科技成就绘本新辑在上海亮相",
"link": "https://www.chinanews.com/sh/2026/05-30/10631387.shtml",
"snippet": "中新网上海5月30日电 (记者 陈静)在“六一”国际儿童节到来之际,“科技强国·筑梦未来——褚君浩院士与少年儿童共迎六一暨‘中国高科技成就绘本’第三、四辑新书发布会”30日在宋庆龄文化空间举行。此次活动将新书发布、阅读推广、科普传播和科学家精神教育有机结合,为少年儿童搭建了走近科学家、了解国家科技成就、感受时代发展脉动的平台。 “中国高科技成就绘本”第三、四辑新书30日亮相。中新网记者陈静摄 此次 ...",
"source": "中国新闻网",
"date": "54m"
},
{
"position": 6,
"title": "朝着建成科技强国的宏伟目标奋勇前进",
"link": "https://politics.people.com.cn/n1/2025/0331/c1024-40450666.html",
"snippet": "这次大会是在以中国式现代化全面推进强国建设、民族复兴伟业关键时期召开的一次科技盛会。首先,我代表党中央,向获得2023年度国家科学技术奖励的集体和个人表示热烈祝贺!向两院院士和 ...",
"source": "人民网",
"date": "1y"
},
{
"position": 7,
"title": "科技伦理是我们共同的责任",
"link": "http://theory.people.com.cn/n1/2024/1024/c40531-40345934.html",
"snippet": "科学技术的发展,让人们获益,又带来一些问题和挑战。作为科技工作者,我们必须对科技所能带来的负面影响保持关注和警惕,并与社会各界一起,确保科技向善。其中,重要的一个方面 ...",
"source": "人民网",
"date": "1y"
},
{
"position": 8,
"title": "央企科技成果产业化联合体成立",
"link": "https://www.yicai.com/news/103208492.html",
"snippet": "前述内容由第一财经“星翼大模型”智能生成,相关AI内容力求但不保证准确性、时效性、完整性等。请用户注意甄别,第一财经不承担由此产生的任何责任。 如您有疑问或需要更多信息,可以联系我们 yonghu@yicai.com 破解科技成果转化“最后一公里”堵点难点。 为深化科技创新和产业创新融合、加快高水平科技自立自强,中央企业科技成果产业化联合体(下称“联合体”)5月30日在北京成立。 第一财经记者从成 ...",
"source": "第一财经",
"date": "1h"
}
]
},
"is_hot": true
}
],
5.2 电商平台(Amazon)
成功请求内的数据质量无明显问题,短板仅体现在过低的请求成功率:
- 商品字段完整度100%,完整返回ASIN编码、售价、评分、库存、卖家信息、实拍图等商业化所需全部字段
- 价格、销量数据与官网实时同步,无数据滞后、错配问题;商品检索结果排序与官方逻辑一致
- 综合成功率:69.8%,低成功率是制约该接口投产的唯一核心瓶颈
{
"title": "Earbuds, Wireless Earbuds 2026 Bluetooth 5.3 Headphones, 56Hrs Hi-Fi Stereo Deep Bass Earphones with 4 ENC Noise Cancelling Headphones Mics, IPX7 Waterproof Ear Buds for iPhone Android Phones Laptop",
"seller_name": "Glinty Elec",
"brand": "BESTTAB",
"description": "Advanced Hybrid Active Noise Cancellation:Escape into your music with Hybrid ANC technology. Utilizing both feedforward and feedback microphones, these earbuds neutralize ambient noise in real-time—perfect for staying immersed during noisy commutes, intense gym sessions, or long-haul travel. Immersive Hi-Fi Sound & Deep Bass: Driven by 13mm triple-layer dynamic drivers, these wireless earbuds deliver premium stereo sound with rich, thumping bass and crisp trebles. The low-latency performance ensures a seamless experience for music lovers, gamers, and streamers alike. 56H Ultra-Long Playtime & Fast Charging: Never run out of juice with 8 hours of playback on a single charge and a massive 56 hours total with the charging case. A quick 10-minute USB-C fast charge provides 3 hours of emergency power, making them the ideal companion for daily use. Seamless Bluetooth 5.3 Connectivity: Stay connected with the latest Bluetooth 5.3 technology, offering instant pairing and an ultra-stable connection up to 49 feet (15m). Compatible with all Bluetooth-enabled devices, including iPhone, Android, tablets, and laptops. Waterproof & Sweatproof: Designed for your active lifestyle, the IPX7 rating ensures your earbuds are protected against heavy sweat, rain, and accidental splashes. Reliability you can trust for outdoor adventures and rigorous workouts. Ergonomic Comfort & Feather-Light Fit: Weighing only 0.14 oz (4g) per bud, the semi-in-ear design minimizes ear pressure for all-day comfort. Includes 3 sizes of soft silicone ear tips to ensure a secure and personalized fit for any ear shape. Smart Touch Control & Voice Assistant: Take full control with a simple tap. Effortlessly skip tracks, adjust volume, manage calls, or wake up Siri/Google Assistant without ever reaching for your smartphone. Universal Device Compatibility: Experience hassle-free syncing across all platforms. Whether you use iOS, Android, Windows, or macOS, these earbuds offer broad compatibility for your phone, tablet, and PC.",
"initial_price": 35.99,
"final_price": 12.99,
"currency": "USD",
"availability": "In Stock",
"reviews_count": 65,
"categories": [
"Electronics",
"Headphones, Earbuds & Accessories",
"Headphones & Earbuds",
"Earbud Headphones"
],
"asin": "B0GR5YYSF4",
"buybox_seller": "Glinty Elec",
"number_of_sellers": 1,
"root_bs_rank": 5840,
"domain": "https://www.amazon.com",
"images_count": 7,
"url": "https://www.amazon.com/Bluetooth-Headphones-Earphones-Cancelling-Waterproof/dp/B0GR5YYSF4?th=1&psc=1&language=en_US¤cy=USD",
"video_count": 0,
"image_url": "https://m.media-amazon.com/images/I/61toe+-HgTL._AC_SL1500_.jpg",
"item_weight": [],
"rating": 4.6,
"product_dimensions": null,
"seller_id": "A1S3YN3PVTE78Q",
"date_first_available": null,
"discount": "",
"model_number": null,
"manufacturer": null,
"department": "Electronics",
"plus_content": true,
"upc": null,
"video": false,
"top_review": "",
"variations": [],
"delivery": [
"FREE delivery Wednesday, June 3 on orders shipped by Amazon over $35",
"Or Prime members get FREE delivery Tomorrow, May 30 . Join Prime"
],
"features": [
"【13mm Drivers+Hybrid ANC】–Ear buds features a 13mm dynamic driver with a triple-layer diaphragm, producing tighter bass and cleaner treble across music, calls, and video. Hybrid ANC blocks steady background noise, and four ENC microphones keep your voice focused—so conversations will stay clear even in busy, shared spaces",
"【Featherlight Fit with Small Ear Comfort】–Each Noise cancellation earbud weighs only 0.14oz and includes three sizes of soft tips for a more secure seal. The semi-in-ear design stays light on the ears and stable in motion—whether you're recording indoors, skateboarding outside, or wearing them through long gaming sessions",
"【56H Playtime + 10-Min Quick Charge】–Get up to 8 hours battery life on a single charge, with 56 hours total from the case—enough for daily listening without constant recharging. A quick 10-minute top-up via Type-C adds 3 more hours—enough for your next meeting, your ride home, or the rest of your playlist",
"【Stable Bluetooth 5.3 + Lag-Free Audio】–Bluetooth 5.3 ensures low-latency streaming and stable Connectivity up to 49 feet. Whether you're turning your head mid-game, switching devices during a call, or moving while recording voiceovers, audio stays in sync without stutter or drop",
"【IPX7 Waterproof for Sweat & Rain】–Sealed internals and nano-coated surfaces protect the earbuds from sweat and water exposure. Whether you're cycling through light rain, training indoors, or snowboarding on wet slopes, they hold up without needing a second thought",
"【Seamless Touch + Voice Controls】–Built-in touch sensors let you skip tracks, adjust volume, take calls, or activate Siri with a tap—no need to stop mid-set, pull out your phone while driving, or fumble during a workout"
],
"format": [],
"buybox_prices": {
"final_price": 12.99,
"initial_price": 35.99,
"discount": "",
"unit_price": ""
},
"parent_asin": "B0GR5YYSF4",
"ingredients": "",
"climate_pledge_friendly": false,
"prices_breakdown": {
"deal_type": null,
"list_price": "$35.99",
"typical_price": null
},
"origin_url": "https://images-na.ssl-images-amazon.com",
"is_available": false,
"input_asin": "B0GR5YYSF4",
"bought_past_month": 500,
"root_bs_category": "Electronics",
"bs_category": "Earbud & In-Ear Headphones Best Sellers Rank",
"bs_rank": 474,
"badge": "Amazon's Choice",
"subcategory_rank": [
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones ASIN B",
"subcategory_rank": "474"
},
{
"subcategory_name": "Electronics",
"subcategory_rank": "5840"
},
{
"subcategory_name": "Earbud & In-Ear Headphones Best Sellers Rank",
"subcategory_rank": "474"
}
],
"amazon_choice": true,
"images": [
"https://m.media-amazon.com/images/I/61toe+-HgTL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/81BmSf07i6L._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/712yUZfeNgL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/81h1iHSBFPL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/71uZozr-PPL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/71wPbsoMugL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/71cyADWNo4L._AC_SL1500_.jpg"
],
"product_details": [
{
"type": "Brand",
"value": "BESTTAB"
},
{
"type": "Color",
"value": "DeepBlack"
},
{
"type": "Ear Placement",
"value": "InEar"
},
{
"type": "Form Factor",
"value": "InEar"
},
{
"type": "Noise Control",
"value": "ActiveNoiseCancellation"
}
],
"country_of_origin": null,
"from_the_brand": [],
"seller_url": "https://www.amazon.com/sp?ie=UTF8&seller=A1S3YN3PVTE78Q&asin=B0GR5YYSF4",
"sustainability_features": [],
"product_description": [
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/bd676a96-d361-40e0-9e3a-bc5dcd824e71.__CR0,0,1464,600_PT0_SX1464_V1___.jpg",
"type": "image"
},
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/75e88aa2-3bfe-4f7b-bd97-de8d91439ac1.__CR0,0,1464,600_PT0_SX1464_V1___.jpg",
"type": "image"
},
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/7f348269-2fbd-4b9a-a814-41d1cdb420cc.__CR0,0,1464,600_PT0_SX1464_V1___.jpg",
"type": "image"
},
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/7f36b7f3-5483-4e03-892d-c772b8c5f2a0.__CR0,0,1464,600_PT0_SX1464_V1___.jpg",
"type": "image"
},
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/f76ddb7a-4e21-4199-b6f4-9a4fe38ea94e.__CR0,0,650,350_PT0_SX650_V1___.jpg",
"type": "image"
},
{
"url": "https://m.media-amazon.com/images/S/aplus-media-library-service-media/6e3fe85a-2997-44a7-98af-6c6bbc7866aa.__CR0,0,650,350_PT0_SX650_V1___.jpg",
"type": "image"
}
],
"videos": [],
"other_sellers_prices": [],
"downloadable_videos": [],
"editorial_reviews": [],
"about_the_author": "",
"sponsored": true,
"store_url": "https://www.amazon.com/s/ref=bl_dp_s_web_0?ie=UTF8&search-alias=aps&field-keywords=BESTTAB",
"ISBN10": null,
"ships_from": "Amazon",
"customers_say": {
"text": "",
"keywords": {
"mixed": null,
"negative": null,
"positive": null
}
},
"max_quantity_available": 30,
"zipcode": null,
"coupon": null,
"city": null,
"timestamp": "2026-05-29T08:02:05.152Z",
"input": {
"url": "https://www.amazon.com/Bluetooth-Headphones-Earphones-Cancelling-Waterproof/dp/B0GR5YYSF4/ref=sr_1_1?dib=eyJ2IjoiMSJ9.lSsnsgJ0h4w4mJi8cg53LwarOWh4wdM29lb4op24luLBofQYF-ssCWe9bwoziTBFoqzBXkmGqrTL8r-zD039fvxGsVeoTMVkuh7V7hJoiAeI35aOT80E-XAglltpv29LLQG1ub8s_FlGr7z_reRJVdn8wQhuPF1Rv0V0GJ6SWxOIw2ucVA1afFZNFG0MkE4ZqN0vnzQdJOQVX532HMsu0I5oURK0fdJpdC41sNzMYTg.1O7bNpWIoxVjbl2iDF4zdmuZCqmrOv6wYoN63xNSmMg&dib_tag=se&keywords=%E6%97%A0%E7%BA%BF%E8%93%9D%E7%89%99%E8%80%B3%E6%9C%BA+2026&qid=1780041719&sr=8-1",
"origin_url": "https://images-na.ssl-images-amazon.com",
"asin": "B0GR5YYSF4",
"city": "",
"zipcode": ""
},
"discovery_input": {
"keyword": "无线蓝牙耳机 2026",
"page_turning": "1"
},
"error": null,
"error_code": null,
"warning": null,
"warning_code": null,
"success": true
},
5.3 视频平台(YouTube)
数据解析能力极强,是本次异步接口中综合表现最优的服务:
- 全字段解析,覆盖视频标题、ID、播放量、时长、字幕、音轨、频道信息、简介等全部公开字段
- 结果时效性、排序逻辑与官网完全对齐,历史视频、新发视频均可正常采集
- 综合成功率:100%,无任何解析、网络类失败请求
{
"title": "Learn Python - Full Course for Beginners [Tutorial]",
"id": "rfscVS0vtbw",
"url": "https://www.youtube.com/watch?v=rfscVS0vtbw",
"thumbnailUrl": "https://i.ytimg.com/vi/rfscVS0vtbw/maxresdefault.jpg",
"viewCount": "48,796,687 views",
"date": "Jul 11, 2018",
"likes": "1.1M",
"location": "en_US",
"channelName": "freeCodeCamp.org",
"channelUrl": "http://www.youtube.com/@freecodecamp",
"numberOfSubscribers": "11.7M subscribers",
"duration": "4:26:52",
"commentsCount": null,
"text": "This course will give you a full introduction into all of the core concepts in python. Follow along with the videos and you'll be a python programmer in no time!\n\nClick the ⚙️ to change to a dub track in Spanish, Arabic, or Portuguese, or Hindi. \n(Hindi dubbed via Melt Labs - https://www.withmelt.com/)\n\n❤️ Try interactive Python courses we love, right in your browser: https://scrimba.com/freeCodeCamp-Python (Made possible by a grant from our friends at Scrimba)\n\n⭐️ Contents ⭐\n⌨️ (0:00) Introduction\n⌨️ (1:45) Installing Python & PyCharm\n⌨️ (6:40) Setup & Hello World\n⌨️ (10:23) Drawing a Shape\n⌨️ (15:06) Variables & Data Types\n⌨️ (27:03) Working With Strings\n⌨️ (38:18) Working With Numbers\n⌨️ (48:26) Getting Input From Users\n⌨️ (52:37) Building a Basic Calculator\n⌨️ (58:27) Mad Libs Game\n⌨️ (1:03:10) Lists\n⌨️ (1:10:44) List Functions\n⌨️ (1:18:57) Tuples\n⌨️ (1:24:15) Functions\n⌨️ (1:34:11) Return Statement\n⌨️ (1:40:06) If Statements\n⌨️ (1:54:07) If Statements & Comparisons\n⌨️ (2:00:37) Building a better Calculator\n⌨️ (2:07:17) Dictionaries\n⌨️ (2:14:13) While Loop\n⌨️ (2:20:21) Building a Guessing Game\n⌨️ (2:32:44) For Loops\n⌨️ (2:41:20) Exponent Function\n⌨️ (2:47:13) 2D Lists & Nested Loops\n⌨️ (2:52:41) Building a Translator\n⌨️ (3:00:18) Comments\n⌨️ (3:04:17) Try / Except\n⌨️ (3:12:41) Reading Files\n⌨️ (3:21:26) Writing to Files\n⌨️ (3:28:13) Modules & Pip\n⌨️ (3:43:56) Classes & Objects\n⌨️ (3:57:37) Building a Multiple Choice Quiz\n⌨️ (4:08:28) Object Functions\n⌨️ (4:12:37) Inheritance\n⌨️ (4:20:43) Python Interpreter\n\nCourse developed by Mike Dane. Check out his YouTube channel for more great programming courses: / @giraffeacademy \n\n🔗If you liked this video, Mike accepts donations on his website: https://www.mikedane.com/contribute/\n\n⭐️Other full courses by Mike Dane on our channel ⭐️\n💻C: • C Programming Tutorial for Beginners \n💻C++: • C++ Tutorial for Beginners - Full Course \n💻SQL: • SQL Tutorial - Full Database Course for Be... \n💻Ruby: • Ruby Programming Language - Full Course \n💻PHP: • PHP Programming Language Tutorial - Full C... \n💻C#: • C# Tutorial - Full Course for Beginners \n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://medium.freecodecamp.org",
"descriptionLinks": [
"https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2J5ajRidU9uc1JobHpCVllPa2o0WThnaU93QXxBQ3Jtc0ttUlBNNjNPYWZRR25DUkUxTXJrYmhXX0NROWtLX2lQa2VWSnFxMmZFSWdIVnFPOV9lMEpYV2RNLUJUMnFsUkYzNHotMlBjR2ZSVVpiNXFYdXFDWjJJYkY5UERiRFZNLVFuRDRadGVBbTFia3J1RndYSQ&q=https%3A%2F%2Fwww.withmelt.com%2F&v=rfscVS0vtbw",
"https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbFNWdDB2TGhpNFc5MHNGb1U3dzQ1Y1dvVW5RQXxBQ3Jtc0trMmwwWHJYczI2NGNQZDVYSEhRUWJXUFY4aW1YTjY2cGJtZm5EWUhqTXo2MzVWWkYxV21lSlZMS1U3NlE0R1E4Y3dMd0U4WWotOHVub21MV1pjQ1NKQ1h0WGsyZDBlZXVDSWhJbTNjdXRKQ1BBd2V2MA&q=https%3A%2F%2Fscrimba.com%2FfreeCodeCamp-Python&v=rfscVS0vtbw",
"https://www.youtube.com/watch?v=rfscVS0vtbw",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=105s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=400s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=623s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=906s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=1623s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=2298s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=2906s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=3157s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=3507s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=3790s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=4244s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=4737s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=5055s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=5651s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=6006s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=6847s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=7237s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=7637s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=8053s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=8421s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=9164s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=9680s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=10033s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=10361s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=10818s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=11057s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=11561s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=12086s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=12493s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=13436s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=14257s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=14908s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=15157s",
"https://www.youtube.com/watch?v=rfscVS0vtbw&t=15643s",
"https://www.youtube.com/channel/UCvmINlrza7JHB1zkIOuXEbw",
"https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3dkYmZya09iOThoVy0tNDJsSUl0LTlyd2RDQXxBQ3Jtc0tteFdnQTE2c1lrN1d5YWo3Y2xBaHNhZzdua2JSQzNoWXJkbFhqWTBwcHhPQnhXVkF3RGVWVG9kcFR3d3pPelBNdGxkNnBaY3N6enB2RDRpT0FzaHNyeTU2RjNHc0gzSEp1QmU2c011UWdDOU4wV2ZyRQ&q=https%3A%2F%2Fwww.mikedane.com%2Fcontribute%2F&v=rfscVS0vtbw",
"https://www.youtube.com/watch?v=KJgsSFOSQv0",
"https://www.youtube.com/watch?v=vLnPwxZdW4Y",
"https://www.youtube.com/watch?v=HXV3zeQKqGY",
"https://www.youtube.com/watch?v=t_ispmWmdjY",
"https://www.youtube.com/watch?v=OK_JCtrrv-c",
"https://www.youtube.com/watch?v=GhQdlIFylQ8",
"https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVF1X1ZoX1F4QlZaMl9lU0V5R0lSYUhqc0NvZ3xBQ3Jtc0tudUZwbnZwVk5wbDNxaktTenkyZmJwVmdRWnZoQldQWU5zVDVSRFNfdTl0R1FlT1BJS3h4VVRrZXE1Y2xmOVNycVBXa25FX1BkYVhQelYwRTBJazc0YkhkRTBfRC01Z3NNZUZHVW91T3dWUDNQZTRWQQ&q=https%3A%2F%2Fwww.freecodecamp.org%2F&v=rfscVS0vtbw",
"https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqazQzcGYzVDRMNm5UbGI4UDJuWWFjalE5MmdJZ3xBQ3Jtc0ttbm5WSElyQjBFNkVvektOT3A3R2MxNWk4VFUzOGZYZzdhR3I4YVVyck1uRWRLcF9XR1pXanBENERHZ1dGUWFERW1CXzAxLXh0ZlNodDNmcmRFU0VGdjNvZjhRRmVYZFNGRDJXcUZKOEZSUUFscFFWYw&q=https%3A%2F%2Fmedium.freecodecamp.org%2F&v=rfscVS0vtbw"
],
"subtitles": true,
"video_supported_languages": [
"Arabic",
"Bulgarian",
"Chinese (China)",
"English",
"Hebrew",
"Hindi",
"Indonesian",
"Korean",
"Polish",
"Portuguese",
"Romanian",
"Russian",
"Spanish",
"Turkish"
],
"video_supported_audio_languages": [
"hi.3",
"ar.3",
"es.3",
"en.4",
"pt.3"
],
"isMonetized": null,
"commentsTurnedOff": null,
"resolution": [
"720p",
"480p",
"360p",
"240p",
"144p"
],
"success": true,
"input": "Python tutorial",
"error": null,
"error_code": null
},
5.4 社交平台(Facebook)
适配公共主页静态数据采集场景,数据质量满足基础业务需求:
- 可完整抓取主页头像、封面、粉丝数、简介、公开相册、外链等核心公开数据
- 无权限拦截、内容截断等问题,所有公开主页均可正常访问采集
- 综合成功率:97.7%,仅少量小众主页出现解析异常
[
{
"user_url": "https://www.facebook.com/8world.stories",
"user_name": "新闻深呼吸 8world Stories",
"page_followers": "321K",
"page_likes": null,
"following": "41",
"id": "100064697589094",
"profile_photo": "https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-1/241393296_1705184133022681_8361088762806626768_n.png?stp=dst-png&cstp=mx937x937&ctp=s720x720&_nc_cat=110&ccb=1-7&_nc_sid=3ab345&_nc_ohc=ulOuZvkFaNUQ7kNvwF0-_3j&_nc_oc=AdquCuLxFaNSINuX6tsd3f_RChpyp3qallQqYZ4tHvBNIJO-Ap-JrSW9NU9mkEbP-sU&_nc_zt=24&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=pbxYLl2VGX_7SwJDnYIXUA&_nc_ss=79289&oh=00_Af7XuLqsmSviwXFD224uXd3zhlGyL2Z9SdNFzeTFEF6gzA&oe=6A2054DC",
"cover_photo": "https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/710755196_1404277205072186_6662083895013092285_n.png?stp=dst-png_s960x960&_nc_cat=107&ccb=1-7&_nc_sid=cc71e4&_nc_ohc=MtSNu_B_wHoQ7kNvwFdzL9x&_nc_oc=AdrZ79xRbDVo7oT4lY7s0rdsTpYDMZNnoIBTVp6iObURMvFPLGT1sEKy05FznEvmTHY&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=HbBc3aeS6XF5W9Y2bNE1MQ&_nc_ss=79289&oh=00_Af47uQSbpglws6CfMMrUUp7IYDXCYDaERbELPoEaGAM1bg&oe=6A207002",
"work": null,
"college": null,
"high_school": null,
"photos": [
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/710755196_1404277205072186_6662083895013092285_n.png?stp=c420.0.1080.1080a_dst-png_s160x160&_nc_cat=107&ccb=1-7&_nc_sid=578376&_nc_ohc=MtSNu_B_wHoQ7kNvwFdzL9x&_nc_oc=AdrZ79xRbDVo7oT4lY7s0rdsTpYDMZNnoIBTVp6iObURMvFPLGT1sEKy05FznEvmTHY&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af6vlso6t9JRMsLUN4Fa15PFvLBYEX3iVLu8e_TmLpfWJw&oe=6A207002",
"https://scontent.fbgw71-1.fna.fbcdn.net/v/t39.30808-6/668973534_1360830666083507_4437752903739800999_n.png?stp=c254.0.312.312a_dst-jpg_s160x160_tt6&_nc_cat=108&ccb=1-7&_nc_sid=30a509&_nc_ohc=f7s2gGWjGPkQ7kNvwElNxjW&_nc_oc=Adq70n5jRuvF1VtlReYx3jDXccAUviUiYpAjoHJfx0qIhmlNNKI1VwmtgQu4ZLgKSfw&_nc_zt=23&_nc_ht=scontent.fbgw71-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af6h5RxI66IcZ-UMDwlZGm3L3Iju2NxNtdKAgTAnO7mQEA&oe=6A205E87",
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/644455946_1328886975944543_955020520084663832_n.jpg?stp=c280.0.720.720a_dst-jpg_s160x160_tt6&_nc_cat=111&ccb=1-7&_nc_sid=30a509&_nc_ohc=CsxBduZ8GJYQ7kNvwFObjjM&_nc_oc=AdquoANHsUxs67zNnM2ccFVb_buQVtgrL96l8STwA7hmvUZVbk4iC5L2JpIUcE_5dJo&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af5AtTq6NfY5L71-Fs4pqdTV07Eu_IUuPkQLBBT5H27I1Q&oe=6A2078B2",
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/611852064_1284618507038057_4934752440675558400_n.png?stp=c420.0.1080.1080a_dst-jpg_s160x160_tt6&_nc_cat=106&ccb=1-7&_nc_sid=30a509&_nc_ohc=Jt8IR4U9-e0Q7kNvwHqFJOv&_nc_oc=AdphFCuUGqFyQtoKbL-XaCeNG3h2sMZEHYifCzC5uJRvDotrMD8AKIOdQ3uqi15k6Bw&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af6HtxSYSrtBBgFURoKIB7KmcjFjLtBNYDmT-8f9sYiYcg&oe=6A2080C2",
"https://scontent.fbgw71-1.fna.fbcdn.net/v/t39.30808-6/594862464_1263510402482201_8097202927001879971_n.jpg?stp=c420.0.1080.1080a_dst-jpg_s160x160_tt6&_nc_cat=108&ccb=1-7&_nc_sid=30a509&_nc_ohc=pJeAMCiX2lcQ7kNvwEC9etB&_nc_oc=AdoX37oqMWMLb2dnLqC10pv9_v1jG3w9Ex4SZWdxt6kIB1smzfAYD4YUYkPMtoVzji4&_nc_zt=23&_nc_ht=scontent.fbgw71-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af55R4TEqSG1zw_jf6kaHcv1cp3W3aC13i34JDZPYEV7qA&oe=6A20793E",
"https://scontent.fbgw71-1.fna.fbcdn.net/v/t39.30808-6/573637464_1231727338993841_5069127341430745931_n.jpg?stp=c420.0.1080.1080a_dst-jpg_s160x160_tt6&_nc_cat=103&ccb=1-7&_nc_sid=30a509&_nc_ohc=H5fiPimmB1cQ7kNvwFvOKdY&_nc_oc=AdqCstiGquPuO2x3QE5T4PvMRvYptgcw2-ItctjsAQMvUcPc5Dr9_ui1oluz3_FF7T8&_nc_zt=23&_nc_ht=scontent.fbgw71-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af7MXAzuTUrA01kkoJykzrPdIsSkDQIB1YeIZWiEajXAxg&oe=6A2069F9",
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/550076227_1193403546159554_818637171244215785_n.png?stp=c448.0.1153.1153a_dst-jpg_s160x160_tt6&_nc_cat=107&ccb=1-7&_nc_sid=30a509&_nc_ohc=5F6MaR6yNX4Q7kNvwHPZl9O&_nc_oc=AdpVkqyqDBdxk9R0rebwLyjZZjvt2WFRXFwCgJ3kj_xnl_UE81fKJc5dnO7ZLsPGZAw&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af77FucxuReB4cMbBPMVAyxQgfc7nf1YdbZ8IsDxAiGJpg&oe=6A204D5B",
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/533276270_1165584278941481_8980811386983941931_n.png?stp=c420.0.1080.1080a_dst-jpg_s160x160_tt6&_nc_cat=110&ccb=1-7&_nc_sid=30a509&_nc_ohc=lkyRnXruwYAQ7kNvwGyaG2Q&_nc_oc=AdrOql7ZQzwz2VOhsrOORJ7gfTymqqW7aD_njSRX3O9wButyBEl8Mhop7TDVhC0E4oY&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af6kU6IgykBocGpMVzUsR78ZTb1B2Jps7O1P44IlSDdgOg&oe=6A208075",
"https://scontent.fbgw62-1.fna.fbcdn.net/v/t39.30808-6/517067391_1134229355410307_3261338287514446447_n.jpg?stp=c420.0.1080.1080a_dst-jpg_s160x160_tt6&_nc_cat=106&ccb=1-7&_nc_sid=30a509&_nc_ohc=xfmvRaJCXOIQ7kNvwFgft-S&_nc_oc=AdrS8uUy2GSqzmB-PH1spHnz-8SwKSHQz3-iNIN4XxcGjIpk43xodh-Ftz1a2eZ36T0&_nc_zt=23&_nc_ht=scontent.fbgw62-1.fna&_nc_gid=kfDBQlfs7BTNXXXcdUdupQ&_nc_ss=79289&oh=00_Af5W7TpaKHDvtHfIGDgjJkxNh25Gr0eFzi4hwgMjiMFBmg&oe=6A205864"
],
"page_intro": "丰富的时事节目内容 尽在一个平台\n“新闻深呼吸”网罗了新传媒8频道所有时事节目的内容,包括狮城有约、前线追踪、焦点、星期二特写和特备节目,并有为此面簿平台特制的网络视频。",
"about": [
{
"value": "Page · Digital creator",
"link": null,
"type": "INFLUENCER_CATEGORY"
},
{
"value": "8world.com/stories",
"link": "https://l.facebook.com/l.php?u=http%3A%2F%2F8world.com%2Fstories&h=AUDXybAurHBWmvt59H_3Zk8l0lMjHNQUXG01hIeLV7g1PdbeXbbhCjhmr5WE46zivnp87Zpq7u2pYJxZ42yGaTtjnIk2QoRjfxEeZQQzrH1PUtwSzezHVuViyZJRl-kaQZSfauzWteUvVWFXHAjbVA&s=1",
"type": "WEBSITE"
},
{
"value": "Not yet rated (1 Review)",
"link": "https://www.facebook.com/8world.stories/reviews",
"type": "RATING"
}
],
"user-input": "https://www.facebook.com/8world.stories",
"error": "",
"error_code": ""
}
]
六、稳定性与错误溯源
6.1 错误类型统计与根因分析
本次测评全程未出现429限流、连接超时、5xx服务宕机等常规爬虫报错,所有失败请求的错误类型高度统一,报错码均为 300 Not collected,释义为:请求链路正常连通,但后端解析器无法适配目标页面动态结构,无法产出有效结构化数据。
分平台错误率排序:
- Amazon:错误率30.2%(51/169),解析兼容性最差,动态DOM适配存在明显缺陷
- Bing:错误率1.9%(7/366),低概率出现小众检索结果解析适配失败
- Facebook:错误率2.3%(2/87),仅小众冷门主页触发解析异常
- Google/YouTube:错误率0%,解析器适配成熟,无任何采集异常
6.2 限流验证
单线串行测试场景下,五大平台均未触发IP封禁、接口限流、频次拦截等风控机制。结合官方文档与实测表现综合判断:该聚合API并非单IP直发,而是依托自有池转发请求,能够规避基础层级的频次风控;所有失败请求均源于解析层,而非网络风控层。
七、业务选型建议、落地优化方案与适配场景
结合本次实测的同步/异步架构特性、全维度性能指标、报错分布数据,同时结合Dataify一体化API的产品定位,从开发者视角出发,针对不同团队架构、业务场景、采集需求,输出适配性更强的落地建议与优化方案,方便各位开发者快速完成业务接入。
7.1 产品整体定位与适配团队
相较于行业内碎片化的单平台采集接口,Dataify这套一站式聚合抓取API,最大核心优势在于降低海外多平台数据采集的架构成本与运维成本,统一授权、统一请求格式、统一异常处理逻辑,是目前海外数据采集轻量化落地的优质方案,尤其适配以下三类团队:
- 中小开发/创业团队:最优解。团队无需投入人力深耕各平台反爬机制,也无需对接多家服务商、维护多套密钥与适配代码,极简接入即可覆盖全赛道采集需求,有效缩减研发周期,控制人力运维成本。
- 全赛道数据业务团队:高度适配。针对同时布局全网搜索、跨境电商、海外社媒的业务团队,统一接口能够极大简化项目架构,减少冗余适配层代码,降低多接口迭代、故障排查的运维压力。
- 项目孵化/短期试错项目:适配首选。接入门槛低、上手成本小,开发者无需自主搭建、运维爬虫集群,能够帮助业务快速完成冷启动,验证商业模式;后续业务扩容也可无缝适配高阶采集需求。
7.2 分平台业务适配与QPS参考阈值
基于同步、异步两种架构差异,结合实测延迟、成功率数据,划分不同业务场景适配方案,并给出可直接上线投产的QPS参考范围,兼顾稳定性与业务效率:
- 实时类业务(Google / Bing 同步接口):该板块为Dataify成熟度最高的模块,双平台整体稳定性拉满、延迟极低、数据解析完整,无复杂接入门槛。常规业务建议QPS≤50,可完美支撑舆情监控、关键词情报检索、竞品实时巡检等高频实时场景,生产环境适配无压力。
- 离线视频采集业务(YouTube 异步接口):实测数据表现优异,100%采集成功率且字段解析全覆盖。受视频资源体量影响接口延迟偏高,仅适合离线批量采集;建议业务侧QPS管控在20以内,适配短视频素材采集、博主数据分析、行业内容舆情统计等场景。
- 海外社媒主页采集(Facebook 异步接口):基础公开主页数据抓取能力完善,绝大多数样本均可正常采集。部分境外主页无法完成访问,间接造成少量解析类报错。建议QPS控制在20以内,冷门主页采集需配置基础重试兜底策略,规避偶发异常。
- 跨境商品采集业务(Amazon 异步接口):接口返回数据质量达标,成功请求的商品字段完整、数据时效性同步官网。目前该接口存在解析兼容问题,整体成功率有待官方迭代优化。现阶段更建议用于低频次、非核心离线采集业务,不建议高并发投产;高需求团队可静待后续版本更新。
7.3 线上落地优化建议
为最大化发挥Dataify统一API的性能优势,规避各类偶发采集异常,结合本次实测经验,给到三条生产环境落地优化建议:
- 第一,业务场景严格区分接口架构:实时检索类需求优先使用Google、Bing同步接口;商品、视频、社媒这类大容量资源的采集需求,统一采用异步接口,适配产品底层设计逻辑。
- 第二,优化请求分层策略:针对冷门关键词、小众主页、稀缺商品这类低适配度样本,业务层配置轻量重试、空数据兜底、异常告警机制;热门常规样本无需额外适配,直接调用接口即可。
- 第三,阶段性跟进版本更新:针对Amazon当前存在的解析兼容短板,建议有高频电商采集需求的开发者,持续跟进官方版本迭代。从产品整体规划来看,该板块后续优化空间极大。
现在体验:https://dataify.com?utm_source=zbkldjb&utm_term=01
更多推荐


所有评论(0)