马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
每天热点新闻聚合站php采集。怎么获得他们的接口呢?自己找到他们对应的接口就行了。小编找了几个。先看看封装的几个效果
比如百度的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/baidu/
比如抖音的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/douyin/
比如知乎的:https://www.wenyunfang.com/ecmsapi/duomeiti/hot/zhihu/
细心的都看见了,就是最后的请求参数变了而已就能获取到他们对应的热点新闻了。不啰嗦开始上代码。有点长直接复制过去调试就行- <?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);
复制代码 以上代码命名为hot.php。那如请求百度的就是hot.php?enews=baidu
怎么与小编的不是一样的呢 ?因为小编的接口已经已经被伪静态了。其实get请求字段都是enews
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|