前言 : 昨天完善了本站的API接口,今天给大家分享几个api接口代码吧!
欢迎大家调用本站的聚合API,
{callout color="#fff7b3"}
{abtn icon="fa fa-grav" color="#a9ffa3" href="http://liuxingyu.icu/index.php/26.html" radius="17.5px" content="前往聚合API"/}
{/callout}
这里给大家分享四个API接口代码
教程 : 选择一个你喜欢的接口,复制代码,然后动动发财的小手,打开宝塔面板,创建文件,后缀为xxx.php,把代码粘贴进去,OK大功告成啦!
{callout color="#675bf0"}
代码开始
{/callout}
{tabs}
{tabs-pane label="知乎热榜API源码"}
<?php
// 知乎热榜 热度
function zhihuHot()
{
$_resHtml = str_replace(["\n", "\r", " "], '', vvhanCurl('https://www.zhihu.com/hot', ['User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'], 'https://www.zhihu.com'));
preg_match('/<scriptid=\"js-initialData\"type=\"text\/json\">(.*?)<\/script>/', $_resHtml, $_resHtmlArr);
$jsonRes = json_decode($_resHtmlArr[1], true);
$tempArr = [];
foreach ($jsonRes['initialState']['topstory']['hotList'] as $k => $v) {
array_push($tempArr, [
'index' => $k + 1,
'title' => $v['target']['titleArea']['text'],
'desc' => $v['target']['excerptArea']['text'],
'pic' => $v['target']['imageArea']['url'],
'hot' => $v['target']['metricsArea']['text'],
'url' => $v['target']['link']['url'],
'mobilUrl' => $v['target']['link']['url']
]);
}
return [
'success' => true,
'title' => '知乎热榜',
'subtitle' => '热度',
'update_time' => date('Y-m-d h:i:s', time()),
'data' => $tempArr
];
}
?>
{/tabs-pane}
{tabs-pane label="百度热点API源码"}
<?php
// 百度热点 指数
function baiduredian()
{
$_resHtml = str_replace(["\n", "\r", " "], '', vvhanCurl('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' => $_v['hotScore'] . 'W个内容',
'mobilUrl' => $_v['appUrl']
]);
}
}
return [
'success' => true,
'title' => '百度热点',
'subtitle' => '指数',
'update_time' => date('Y-m-d h:i:s', time()),
'data' => $tempArr
];
}
?>
{/tabs-pane}
{tabs-pane label="微博热搜API源码"}
<?php
// 微博 热搜榜
function wbresou()
{
$_md5 = md5(time());
$cookie = "Cookie: {$_md5}:FG=1";
$jsonRes = json_decode(vvhanCurl('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' => $v['num'] . '万',
'url' => "https://s.weibo.com/weibo?q={$v['word_scheme']}&t=31&band_rank=12&Refer=top",
'mobilUrl' => "https://s.weibo.com/weibo?q={$v['word_scheme']}&t=31&band_rank=12&Refer=top"
]);
}
return [
'success' => true,
'title' => '微博',
'subtitle' => '热搜榜',
'update_time' => date('Y-m-d h:i:s', time()),
'data' => $tempArr
];
}
?>
{/tabs-pane}
{tabs-pane label="三合一聚合源码"}
知乎热榜、百度热点、微博热搜 API三合一聚合源码
<?php
/*
* @Author: Han
* @Date: 2022-11-16 13:45:21
* @LastEditors: Han
* @LastEditTime: 2022-11-16 13:52:21
* @FilePath: www.liuxingyu.icu
* @NetWork: 流星小屋 liuxingyu.icu
*/
error_reporting(0);
header("Access-Control-Allow-Origin:*");
header("Content-type:application/json; charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
class VvhanApi
{
// 知乎热榜 热度
public function zhihuHot()
{
$_resHtml = str_replace(["\n", "\r", " "], '', $this->vvhanCurl('https://www.zhihu.com/hot', ['User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'], 'https://www.zhihu.com'));
preg_match('/<scriptid=\"js-initialData\"type=\"text\/json\">(.*?)<\/script>/', $_resHtml, $_resHtmlArr);
$jsonRes = json_decode($_resHtmlArr[1], true);
$tempArr = [];
foreach ($jsonRes['initialState']['topstory']['hotList'] as $k => $v) {
array_push($tempArr, [
'index' => $k + 1,
'title' => $v['target']['titleArea']['text'],
'desc' => $v['target']['excerptArea']['text'],
'pic' => $v['target']['imageArea']['url'],
'hot' => $v['target']['metricsArea']['text'],
'url' => $v['target']['link']['url'],
'mobilUrl' => $v['target']['link']['url']
]);
}
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->vvhanCurl('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' => $v['num'] . '万',
'url' => "https://s.weibo.com/weibo?q={$v['word_scheme']}&t=31&band_rank=12&Refer=top",
'mobilUrl' => "https://s.weibo.com/weibo?q={$v['word_scheme']}&t=31&band_rank=12&Refer=top"
]);
}
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->vvhanCurl('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' => $_v['hotScore'] . 'W个内容',
'mobilUrl' => $_v['appUrl']
]);
}
}
return [
'success' => true,
'title' => '百度热点',
'subtitle' => '指数',
'update_time' => date('Y-m-d h:i:s', time()),
'data' => $tempArr
];
}
private function vvhanCurl($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 VvhanApi;
switch ($_type) {
case 'baidu':
$_res = $API->baiduredian();
break;
case 'zhihu':
$_res = $API->zhihuHot();
break;
case 'weibo':
$_res = $API->wbresou();
break;
default:
$_res = ['success' => false, 'message' => '参数不完整'];
break;
}
$_res['copyright'] = '流星小屋 www.liuxingyu.icu';
exit(json_encode($_res, JSON_UNESCAPED_UNICODE));
?>
{/tabs-pane}
{/tabs}