1.B站的所有接口经测试没有频次和IP访问限制,可以随意去请求
2.B站的弹幕接口:http://comment.bilibili.com/+cid.xml
3.要想拿到弹幕先要找到cid,然后get方式请求这个接口返回的是XML数据
4.cid依然是通过接口拿到
(1) 如果你是搜索某个关键字,打开chrome控制台可以找到加载数据的api,在api数据里你可以拿到aid
(2) 在通过:https://api.bilibili.com/x/web-interface/view?aid=这个接口去拿到cid,将2的接口地址拼接上即可请求出弹幕数据。
5.部分代码
$keyWord = array('刘三好');
for($c=0;$c<count($keyWord);$c++)
{
$baseurl = "https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword='.$keyWord[$c].'&page=";
for($i=1;$i<=4;$i++)
{
$url = $baseurl.$i;
$json = requests::get($url);
$jsondecode = json_decode($json,TRUE);
for($s=0;$s<count($jsondecode['data']['result']);$s++)
{
$tagsurl = "https://api.bilibili.com/x/web-interface/view?aid=";
$commentUrl = 'http://comment.bilibili.com/';
$str = '';
$data = array();
$tagsurl=$tagsurl.$jsondecode['data']['result'][$s]['aid'];
$tagjson = requests::get($tagsurl);
$jsontag = json_decode($tagjson,TRUE);//拿到cid
$resUrl = $commentUrl.$jsontag['data']['cid'].'.xml';//拿到xml数据
$commentXml = requests::get($resUrl);
$comment = simplexml_load_string($commentXml);//解析XML
$xmljson = json_encode($comment);
$xmlres = json_decode($xmljson,TRUE);
6.效果图