细心的都看见了,就是最后的请求参数变了而已就能获取到他们对应的热点新闻了。(备注:本接口只做演示用,不不定期删除的哈)不啰嗦开始上代码。有点长直接复制过去调试就行
- 比如百度的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/baidu/
- 比如抖音的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/douyin/
- 比如知乎的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/zhihu/
以上代码命名为hot.php。那如请求百度的就是hot.php?enews=baidu
- <?php
- // Curl请求函数
- 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);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- curl_setopt($ch, CURLOPT_COOKIE, $cookie);
- curl_setopt($ch, CURLOPT_REFERER, $refer);
- 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);
- curl_setopt($ch, CURLOPT_TIMEOUT, 5);
- $output = curl_exec($ch);
- curl_close($ch);
- return $output;
- }
- // 少数派 热榜
- function sspai(){
- $jsonRes = json_decode(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
- ];
- }
- // 抖音 热搜榜
- function douyin(){
- $jsonRes = json_decode(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
- ];
- }
- // 哔哩哔哩 全站日榜
- function bilibili_rankall(){
- $jsonRes = json_decode(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
- ];
- }
- // 哔哩哔哩 热搜榜
- function bilibili_hot(){
- $jsonRes = json_decode(Curl('https://app.bilibili.com/x/v2/search/trending/ranking', null, null, "https://www.bilibili.com"), true);
- $tempArr = [];
- 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
- ];
- }
- // 知乎热榜 热度
- function zhihuHot(){
- $jsonRes = json_decode(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
- ];
- }
- // 微博 热搜榜
- function wbresou(){
- $_md5 = md5(time());
- $cookie = "Cookie: {$_md5}:FG=1";
- $jsonRes = json_decode(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
- ];
- }
- // 百度热点 指数
- function baiduredian(){
- $_resHtml = str_replace(["\n", "\r", " "], '', Curl('https://top.baidu.com/board?tab=realtime', null));
- preg_match('/<!--s-data:(.*?)-->/', $_resHtml, $_resHtmlArr);
- $jsonRes = json_decode($_resHtmlArr[1], true);
- $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
- ];
- }
- $_type = $_GET['enews'] ? $_GET['enews'] : '';
- switch ($_type) {
- case 'baidu':
- $_res = baiduredian();
- break;
- case 'zhihu':
- $_res = zhihuHot();
- break;
- case 'weibo':
- $_res = wbresou();
- break;
- case 'bilihot':
- $_res = bilibili_hot();
- break;
- case 'biliall':
- $_res = bilibili_rankall();
- break;
- case 'douyin':
- $_res = douyin();
- break;
- case 'sspai':
- $_res = sspai();
- break;
- default:
- $_res = ['success' => false, 'message' => '参数不完整'];
- break;
- }
- echo json_encode($_res, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
怎么与小编的不是一样的呢 ?因为小编的接口地址已经被伪静态了。其实get请求字段都是enews