主机知识库
分享服务器知识

PHP打造B站用户相册api

哔哩哔哩用户相簿api读取

起因是B站有个官方账号【壁纸喵】,她不定期会在动态里发布B站的壁纸。而B站默认动态里面的图片都会在相簿里。【PS:B站画友项目好像凉了,画友里面画师的图好像也存到相册里了】

壁纸喵的相簿

通过F12我们可以发现这个api地址

https://api.bilibili.com/x/dynamic/feed/draw/doc_list?uid=6823116&page_num=0&page_size=30&biz=all&jsonp=jsonp

其中uid就是用户id,而page_num就是页面,页面默认是从0开始的,0就是第一页。

由此我们就可以书写自己的api了,首先新建个bizhi.php文件用于写php代码,另外新建立个bizhi文件夹用于缓存,代码如下:

<?php
header("Access-Control-Allow-Origin: *");
define('CACHE', true);
define('CACHE_TIME', 3600*3);//缓存时间间隔为3小时
header('Content-type:text/json'); 

if(isset($_GET['uid'])&&isset($_GET['page'])){
header('Content-type:text/json'); 
$geturl = 'https://api.bilibili.com/x/dynamic/feed/draw/doc_list?uid=' . $_GET['uid'] . '&page_num='. $_GET['page'] .'&page_size=30&biz=all&jsonp=jsonp';
$file_path = __DIR__ . '/bizhi/uid-' . $_GET['uid'] . 'page-'. $_GET['page'] .'.json';
}


if (file_exists($file_path)) {
            if ($_SERVER['REQUEST_TIME'] - filectime($file_path) < CACHE_TIME) {
                echo file_get_contents($file_path);
                exit;
            }
}


$json_strings=MCurl($geturl);
if (CACHE) {file_put_contents($file_path, $json_strings);}
echo $json_strings;


function MCurl($url){
$headers[] = "User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)";
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$tmpInfo = curl_exec($curl);
//关闭URL请求
curl_close($curl);
return $tmpInfo;
    }
?>

然后我们访问bizhi.php?uid=你想要获取的用户的id&page=页码,就可以获取到用户的相簿数据了,数据默认会缓存三个小时(代码中有注释,如有需要可自行修改),避免多次请求B站api导致被封ip的情况。

最后得到数据我们就可以为其书写界面了,不过需要给网页加个<meta name="referrer" content="never">来避免图片防盗链的问题,下面是我弄的效果。

效果展示

总结一下,其实大用没什么大用,毕竟谁的动态也不是纯发壁纸图片的,不过可以考虑自己弄个b站小号,动态只发壁纸,这样就可以打造个人相册了。

【本文由作者zeze投稿至cmy.cn,转载请注明出处,侵权必追究】

赞(0)
文章名称:《PHP打造B站用户相册api》
文章链接:https://www.cmy.cn/host/800.html
版权声明:茶猫云所有发布的内容,部分为原创文章,转载请注明来源!网络转载文章如有侵权请联系我们解决!
最新优惠:茶猫云VPS服务器