2023最新聚合热搜热榜PHP接口API源码

聚合热搜热榜PHP接口API源码,本源码接口均抓取采集各大官网数据。

PHP环境为5.6或以上,解压压缩包里面的hotlist.php文件到网站目录

然后输入参数输入?type

参数内容:

zhihu(知乎热榜) weibo(微博热搜) baidu(百度热点) history(历史上的今天) bilihot(哔哩哔哩热搜) biliall(哔哩哔哩全站日榜) sspai(少数派头条) douyin(抖音热搜) 优快云(优快云头条榜)

使用方法

访问你的 域名地址/hotlist.php?type=

?type=(输入参数才能显示内容)

示例:

访问你的 域名地址/hotlist.php?type=zhihu

API源码

<?php
header("Access-Control-Allow-Origin:*");
header("Content-type:application/json; charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
class Api
{
  // 少数派 热榜
  public function sspai()
  {
    $jsonRes = json_decode($this->Curl('https://sspai.com/api/v1/article/tag/page/get?limit=100000&tag=%E7%83%AD%E9%97%A8%E6%96%87%E7%AB%A0', null, null, "https://sspai.com"), true);
    $tempArr = [];
    foreach ($jsonRes['data'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +1,
        'title' => $v['title'],
        'createdAt' => date('Y-m-d', $v['released_time']),
        'other' => $v['author']['nickname'],
        'like_count' => $v['like_count'],
        'comment_count' => $v['comment_count'],
        'url' => 'https://sspai.com/post/'.$v['id'],
        'mobilUrl' => 'https://sspai.com/post/'.$v['id']
      ]);
    }
    return [
      'success' => true,
      'title' => '少数派',
      'subtitle' => '热榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
   
  // 优快云 头条榜
  public function csdn()
  {
    $_resHtml = $this->Curl('https://www.youkuaiyun.com', null, "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1", "https://www.youkuaiyun.com");
    preg_match('/window.__INITIAL_STATE__=(.*?);<\/script>/', $_resHtml, $_resHtmlArr);
    $jsonRes = json_decode($_resHtmlArr[1],true);
    $tempArr = [];
    //头条
    foreach ($jsonRes['pageData']['data']['Headimg'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +1,
        'title' => $v['title'],
        'url' => $v['url'],
        'mobilUrl' => $v['url']
      ]);
    }
    //头条1
    foreach ($jsonRes['pageData']['data']['www-Headlines'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +17,
        'title' => $v['title'],
        'url' => $v['url'],
        'mobilUrl' => $v['url']
      ]);
    }
    //头条2
    foreach ($jsonRes['pageData']['data']['www-headhot'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +48,
        'title' => $v['title'],
        'url' => $v['url'],
        'mobilUrl' => $v['url']
      ]);
    }
    return [
      'success' => true,
      'title' => '优快云',
      'subtitle' => '头条榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
   
  //百度百科  历史上的今天
  public function history()
  {
    $month=date('m',time() );
    $day=date('d',time() );
    //当前年月日
    $today = date('Y年m月d日');
    //获取接口数据
    $jsonRes = json_decode($this->Curl('https://baike.baidu.com/cms/home/eventsOnHistory/'.$month.'.json', null, null, "https://baike.baidu.com"), true);
    $tempArr = [];
    //统计当日总数
    $countnum = count($jsonRes[$month][$month.$day])-1;
    foreach ($jsonRes[$month][$month.$day] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +1,
        'title' => $v['year'].'年-'.strip_tags($v['title']),
        'url' => 'https://www.douyin.com/search/'.urlencode($v['title']),
        'mobilUrl' => 'https://www.douyin.com/search/'.urlencode($v['title'])
      ]);
    }
    return [
      'success' => true,
      'title' => '百度百科',
      'subtitle' => '历史上的今天',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
   
  // 抖音 热搜榜
  public function douyin()
  {
    $jsonRes = json_decode($this->Curl('https://www.iesdouyin.com/web/api/v2/hotsearch/billboard/word/', null, null, "https://www.douyin.com"), true);
    $tempArr = [];
    foreach ($jsonRes['word_list'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +1,
        'title' => $v['word'],
        'hot' => round($v['hot_value']/10000,1).'万',
        'url' => 'https://www.douyin.com/search/'.urlencode($v['word']),
        'mobilUrl' => 'https://www.douyin.com/search/'.urlencode($v['word'])
      ]);
    }
    return [
      'success' => true,
      'title' => '抖音',
      'subtitle' => '热搜榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
  // 哔哩哔哩 全站日榜
  public function bilibili_rankall()
  {
    $jsonRes = json_decode($this->Curl('https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all', null, null, "https://www.bilibili.com"), true);
    $tempArr = [];
    foreach ($jsonRes['data']['list'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k +1,
        'title' => $v['title'],
        'pic' => $v['pic'],
        'desc' => $v['desc'],
        'hot' => round($v['stat']['view']/10000,1).'万',
        'url' => $v['short_link'],
        'mobilUrl' => $v['short_link']
      ]);
    }
    return [
      'success' => true,
      'title' => '哔哩哔哩',
      'subtitle' => '全站日榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
  // 哔哩哔哩 热搜榜
  public function bilibili_hot()
  {
    $jsonRes = json_decode($this->Curl('https://app.bilibili.com/x/v2/search/trending/ranking', null, null, "https://www.bilibili.com"), true);
    $tempArr = [];
    //return $jsonRes;
    foreach ($jsonRes['data']['list'] as $k => $v) {
      array_push($tempArr, [
        'index' => $v['position'],
        'title' => $v['keyword'],
        'url' => 'https://search.bilibili.com/all?keyword='.$v['keyword'].'&order=click',
        'mobilUrl' => 'https://search.bilibili.com/all?keyword='.$v['keyword'].'&order=click'
      ]);
    }
    return [
      'success' => true,
      'title' => '哔哩哔哩',
      'subtitle' => '热搜榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
   
  // 知乎热榜  热度
  public function zhihuHot()
  {
    $jsonRes = json_decode($this->Curl('https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true', null, null, "https://www.zhihu.com"), true);
    $tempArr = [];
    foreach ($jsonRes['data'] as $k => $v) {
      preg_match('/\d+/',  $v['detail_text'], $hot);
      array_push($tempArr, [
        'index' => $k + 1,
        'title' => $v['target']['title'],
        'hot' => $hot[0].'万',
        'url' => 'https://www.zhihu.com/question/'.urlencode($v['target']['id']),
        'mobilUrl' => 'https://www.zhihu.com/question/'.urlencode($v['target']['id'])
      ]);
    }
    return [
      'success' => true,
      'title' => '知乎热榜',
      'subtitle' => '热度',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
  // 微博 热搜榜
  public function wbresou()
  {
    $_md5 = md5(time());
    $cookie = "Cookie: {$_md5}:FG=1";
    $jsonRes = json_decode($this->Curl('https://weibo.com/ajax/side/hotSearch', null, $cookie, "https://s.weibo.com"), true);
    $tempArr = [];
    foreach ($jsonRes['data']['realtime'] as $k => $v) {
      array_push($tempArr, [
        'index' => $k + 1,
        'title' => $v['note'],
        'hot' => round($v['num']/10000,1).'万',
        'url' => "https://s.weibo.com/weibo?q=".$v['note']."&Refer=index",
        'mobilUrl' => "https://s.weibo.com/weibo?q=".$v['note']."&Refer=index"
      ]);
    }
    return [
      'success' => true,
      'title' => '微博',
      'subtitle' => '热搜榜',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
  // 百度热点 指数
  public function baiduredian()
  {
    $_resHtml = str_replace(["\n", "\r", " "], '', $this->Curl('https://top.baidu.com/board?tab=realtime', null));
    preg_match('/<!--s-data:(.*?)-->/', $_resHtml, $_resHtmlArr);
    $jsonRes = json_decode($_resHtmlArr[1], true);
    //return $jsonRes;
    $tempArr = [];
    foreach ($jsonRes['data']['cards'] as $v) {
      foreach ($v['content'] as $k => $_v) {
        array_push($tempArr, [
          'index' => $k + 1,
          'title' => $_v['word'],
          'desc' => $_v['desc'],
          'pic' => $_v['img'],
          'url' => $_v['url'],
          'hot' => round($_v['hotScore']/10000,1).'万',
          'mobilUrl' => $_v['appUrl']
        ]);
      }
    }
    return [
      'success' => true,
      'title' => '百度热点',
      'subtitle' => '指数',
      'update_time' => date('Y-m-d h:i:s', time()),
      'data' => $tempArr
    ];
  }
  private function Curl($url, $header = [
    "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Encoding: gzip, deflate, br",
    "Accept-Language: zh-CN,zh;q=0.9",
    "Connection: keep-alive",
    "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1"
  ], $cookie = null, $refer = 'https://www.baidu.com')
  {
    $ip = rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255);
    $header[] = "CLIENT-IP:" . $ip;
    $header[] = "X-FORWARDED-FOR:" . $ip;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); //设置传输的 url
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //发送 http 报头
    curl_setopt($ch, CURLOPT_COOKIE, $cookie); //设置Cookie
    curl_setopt($ch, CURLOPT_REFERER,  $refer); //设置Referer
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); // 解码压缩文件
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
  }
}
$_type = isset($_GET['type']) ? $_GET['type'] : '';
$API = new Api;
switch ($_type) {
  case 'baidu':
    $_res = $API->baiduredian();
    break;
  case 'zhihu':
    $_res = $API->zhihuHot();
    break;
  case 'weibo':
    $_res = $API->wbresou();
    break;
  case 'bilihot':
    $_res = $API->bilibili_hot();
    break;
  case 'biliall':
    $_res = $API->bilibili_rankall();
    break;
  case 'douyin':
    $_res = $API->douyin();
    break;
  case 'history':
    $_res = $API->history();
    break;
  case 'csdn':
    $_res = $API->csdn();
    break;
  case 'sspai':
    $_res = $API->sspai();
    break;
  default:
    $_res = ['success' => false, 'message' => '参数不完整'];
    break;
}
$_res['copyright'] = '聚合热搜榜';
exit(json_encode($_res,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
?>

基于Node.js,提供网易云所有API接口数据,包括:登录,获取用户信息 , 歌单,收藏,mv, dj 数量 获取用户歌单 获取用户电台 获取用户关注列表 获取用户粉丝列表 获取用户动态 获取用户播放记录 获取精品歌单 获取歌单详情 索建议 获取歌词 歌曲评论 收藏单曲到歌单 专辑评论 歌单评论 mv 评论 电台节目评论 banner 获取歌曲详情 获取专辑内容 获取歌手单曲 获取歌手 mv 获取歌手专辑 获取歌手描述 获取相似歌手 获取相似歌单 相似 mv 获取相似音乐 获取最近 5 个听了这首歌的用户 获取每日推荐歌单 获取每日推荐歌曲 私人 FM 签到 喜欢音乐 垃圾桶 歌单 ( 网友精选碟 ) 新碟上架 门歌手 最新 mv 推荐 mv 推荐歌单 推荐新音乐 推荐电台 推荐节目 独家放送 mv 排行 获取 mv 数据 播放 mv/视频 排行榜 歌手榜 云盘 电台 - 推荐 电台 - 分类 电台 - 分类推荐 电台 - 订阅 电台 - 详情 电台 - 节目 给评论点赞 获取动态 列表(简略) 发送私信 发送私信歌单 新建歌单 收藏/取消收藏歌单 歌单分类 收藏的歌手列表 订阅的电台列表 相关歌单推荐 付费精选接口 音乐是否可用检查接口 登录状态 获取视频播放地址 发送/删除评论 门评论 视频评论 退出登录 所有榜单 所有榜单内容摘要 收藏视频 收藏 MV 视频详情 相关视频 关注用户 新歌速递 喜欢音乐列表(无序) 收藏的 MV 列表 获取最新专辑 听歌打卡 获取视频标签下的视频 已收藏专辑列表 获取动态评论 歌单收藏者列表 云盘歌曲删除 门话题 电台 - 推荐类型 电台 - 非门类型 电台 - 今日优选 心动模式/智能播放 转发动态 删除动态 分享歌曲、歌单、mv、电台、电台节目到动态 通知-私信 通知-评论 通知-@我 通知-通知 设置 云盘数据详情 私信内容 我的数字专辑 batch批量请求接口 获取视频标签列表 全部mv 网易出品mv 收藏/取消收藏专辑 专辑动态信息 列表(详细) 更换绑定手机 检测手机号码是否已注册 初始化昵称 更新歌单描述 更新歌单名 更新歌单标签 默认索关键词 删除歌单 电台banner 用户电台 门电台 电台 - 节目详情 电台 - 节目榜 电台 - 新晋电台榜/门电台榜 类别门电台 云村评 电台24小时节目榜 电台24小时主播榜 电台最主播榜 电台主播新人榜 电台付费精品榜 歌手门50首歌曲
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bryan Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值