准备
平台粉丝数API,以bilibili举例
腾讯云图
云服务器或云函数
PHP,JavaScript基础
原理
抓取数据API,然后对API进行格式化,然后提取数组,映射到腾讯云图上
API获取
API可以在github上找,也可以F12查找,github上有bilibili非官方整理的APIhttps://github.com/SocialSisterYi/bilibili-API-collect
比如粉丝数,是这个API:https://api.bilibili.com/x/relation/stat?vmid=24749747
代码语言:txt复制其中:https://api.bilibili.com/x/relation/stat?vmid={查找的uid}
uid可以在个人空间里找到uid例如:
代码语言:txt复制https://space.bilibili.com/24749747
24749747就是UID
腾讯云图对接
在腾讯云图里,编辑数据源用API,如果你直接输入https://api.bilibili.com/x/relation/stat?vmid=24749747,得到的结果是
代码语言:txt复制{"code":0,"message":"0","ttl":1,"data":{"mid":24749747,"following":179,"whisper":0,"black":4,"follower":7708}}
格式化一下
代码语言:txt复制{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":24749747,
"following":179,
"whisper":0,
"black":4,
"follower":7708
}
}
有用的数据在data里,其余都是返回码,所以只要
你会发现有二级数组,而且腾讯云图数据格式要有中括号,二级数组在腾讯云里是没办法提取出来的,所以必须要进行处理
数据处理
这里用的是PHP,因为扩展性强
首先先获得bilibiliapi的内容:
代码语言:txt复制//$表示变量 根据自己习惯来
$json= file_get_contents('https://api.bilibili.com/x/relation/stat?vmid=24749747');
再把json格式数据解码为php的数组
代码语言:txt复制//注意这部分变量
$array= array(json_decode($json));
去掉返回的代码值,只提取data部分
代码语言:txt复制$ss = array_column($array, 'data');
将数据转换为json格式,再范化为腾讯云图数据格式,把"{"替换为"{","}"替换为"}"
代码语言:txt复制$a= str_replace("{","[{",$json);
$b= str_replace("}","}]",$a);
最后输出结果
代码语言:txt复制print($jsona);
整合起来就是
代码语言:txt复制<?php
$json= file_get_contents('https://api.bilibili.com/x/relation/stat?vmid=24749747');
$array= array(json_decode($json));
$ss = array_column($array, 'data');
$jsona= json_encode($ss);
$a= str_replace("{","[{",$json);
$b= str_replace("}","}]",$a);
print($jsona);
?>
腾讯云图映射
上传API
PHP的API可以托管给腾讯云函数,每个月有100万次免费额度,或者交给自己服务器处理,这部分不多讲
然后再腾讯云图里把数据改为API,输入PHP路径
勾上
数据如下
代码语言:txt复制[
{
"mid": 24749747,
"following": 179,
"whisper": 0,
"black": 0,
"follower": 7708
}
]
mid:用户UID
Following:关注数
下面两个不知道什么
Follower:粉丝数
根据实际情况映射
2020-6-9更新:
对于需要SESSDATA的API
首先打开平台网站,然后在网址栏左侧点击
找到网站的域名处,选择SESSDATA
记录这一部分的数值
然后再在PHP代码里添加curl的get请求,并且格式化为腾讯云图格式:
代码语言:txt复制$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,'输入API的地址');
//此处输入浏览器Cookie中的SESSDATA,保密!
$sessdata=
curl_setopt($ch,CURLOPT_COOKIE,$sessdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
//此处输出的是变量,需要Print或者return输出值,但是还需要进一步格式化
$array= array(json_decode($response,true));
//提取data值
$sss = array_column($array, 'data');
$jsona= json_encode($sss);
//格式化
$fin= str_replace("[[","[",$jsona);
$finb= str_replace("]]","]",$fin);
//输出值
print_r($finb);
经过格式化后数据已经正常
横纵代表意义去bilibiliAPI的github上查阅
到此,教程结束,感谢支持
更多玩法等你探索!
我是Ar-Sr-Na,业余无线电爱好者,个人网站www.arsrna.com