热榜API接口
代码语言:javascript复制https://dabenshi.cn/other/api/hot.php?type=douyinhot // 抖音热点
https://dabenshi.cn/other/api/hot.php?type=toutiaoHot // 头条热榜
https://dabenshi.cn/other/api/hot.php?type=baidu // 百度热搜
了解 data 数组(以抖音接口为例,其他雷同):
代码语言:javascript复制{
"api_info": "www.dabenshi.cn", // API信息
"success": true, // 请求成功标志
"title": "抖音", // 标题
"subtitle": "抖音热点", // 子标题
"update_time": "Y-m-d H:i:s", // 更新时间
"data": [ // 数据列表
{
"index": 1, // 排名
"title": "总书记对青年的谆谆教诲", // 标题
"hot": "0万", // 热度
"hotlist_param": "{"version":1}", // 热度列表参数
"discuss_video_count": 1, // 讨论视频数量
"image_url": null, // 图片链接
"word_sub_board": null, // 字幕板块
"label": 0, // 标签
"url": "https://www.douyin.com/search/总书记对青年的谆谆教诲", // 网页链接
"mobilUrl": "https://www.douyin.com/search/总书记对青年的谆谆教诲" // 移动端网页链接
}
]
}
根据 API 提供的 data 数组,再结合你的数据结构,以 PHP 为例处理:
代码语言:javascript复制<?php
// 指定要获取数据的 URL
$url = 'https://dabenshi.cn/other/api/hot.php?type=douyinhot';
// 初始化 cURL 会话
$ch = curl_init();
// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求的 URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回结果中包含输出的字符串
curl_setopt($ch, CURLOPT_HEADER, false); // 在输出中排除任何 HTTP 头信息
// 执行 cURL 会话并获取返回结果
$response = curl_exec($ch);
// 关闭 cURL 会话
curl_close($ch);
// 处理响应数据
if ($response !== false) {
// 将返回的 JSON 数据解码为关联数组
$data = json_decode($response, true);
// 检查是否存在 data 键
if (isset($data['data'])) {
// 获取项目数组
$items = $data['data'];
// 初始化序号和输出项目数量限制
$index = 1;
$outputLimit = 5;
// 循环遍历项目数组
foreach ($items as $item) {
// 检查是否超出输出限制
if ($index > $outputLimit) {
break; // 超过输出限制时跳出循环
}
// 提取项目信息
$itemUrl = $item['url']; // 获取项目 URL
$itemTitle = htmlspecialchars($item['title']); // 获取并转义标题
$itemImage = isset($item['image_url'][0]) ? $item['image_url'][0] : 'https://dabenshi.cn/uploads/TikTok.svg'; // 获取并设置图片 URL,如果不存在,则使用默认图片
$itemTime = date('Y-m-d H:i', $item['timestamp']); // 格式化时间戳
$itemHot = $item['hot']; // 获取热度
// 输出 HTML
echo "<div class="story_line">"; // 输出项目容器的开始标签
echo "<a href="{$itemUrl}" title="{$itemTitle}" target="_blank">"; // 输出链接标签,包含标题和 URL,并在新标签页中打开
echo "<div class="image cover" style="background-image: url({$itemImage})">"; // 输出带有背景图片的 div,用于显示项目图片
echo "</div>"; // 关闭图片 div
echo "<div>"; // 输出包含标题和时间的 div
echo "<span class="title">{$itemTitle}</span>"; // 输出标题
echo "<time class="date grey" datetime="{$itemTime}">热度:{$itemHot} {$itemTime}</time>"; // 输出热度和时间
echo "</div>"; // 关闭标题和时间的 div
echo "</a>"; // 关闭链接
echo "</div>"; // 关闭项目容器
$index ; // 序号递增
}
} else {
echo "未找到数据"; // 输出未找到数据的消息
}
} else {
echo "无法获取数据"; // 输出无法获取数据的消息
}
?>