分析了b站敬汉卿的所有视频的弹幕,最多的弹幕居然是

Hello,各位看官老爷们,千珏我又回来更新了,在千珏鸽了这一个多月内你们有没有想我啊,最近因为各种事情就当鸽子了,这一个多月正事没怎么干,都是在打游戏,看视频中度过,最近疫情严重也不能出去玩,各位看官老爷们,也要乖乖的响应国家号召不要出去玩哦。

在这里插入图片描述

各位看官老爷们,应该都看b站的吧,有一天千珏在家里看b站的时候,正在看敬汉卿视频呢,这个时候突然间收到一条消息。

x总:千珏,下周复工了,你下周的工作就是xx公司会给我们接口,你调用一下,我们的业务里面会使用到。

千珏:好的,x总。

我心里一想完了呀,我这假期过的就像度假一样了,都记不住自己的工作是啥了,这样可不太行,万一下周就公司的时候啥也不会,老板把我T了怎么办。

在这里插入图片描述

只能临时搞一下了,然后看了眼我屏幕上面飘过的弹幕,露出了邪恶的笑容

在这里插入图片描述

正好好早之前就想做一下,b站某个up所有视频弹幕出现最高频率的弹幕了,好多次都看到有人跟风刷一样的弹幕,正好借这个机会来搞一波。

首先打开b站up主视频的主页面,然后按下F12,找一下b站的接口

在这里插入图片描述

这样我们就可以把他所有视频信息给请求下来了,然后我们点开单个视频进去发现按F12分析发现,怎么也发现不了他的弹幕信息,这个时候就看到了一个接口,是一个文件类似接口,然后请求看一下发现是他的xml文件,xml文件上面对应就是弹幕的信息,这个时候就知道了(浪费了我一个小时测接口,枯了)

然后就可以开始写程序了,我用的是HttpClient做的请求接口的主要工具.

首先先请求up主所有视频的信息

为了过审接口信息我就不放了,大家如果想要完整代码的可以vx搜索我的公主号:千珏(jue)回复b站就可以了。

下面开始上代码

public class UpVideoInfoTest {
    public static void main(String[] args) throws Exception {
        //创建请求实例
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //创建接口信息
        URIBuilder uriBuilder = new URIBuilder("xxxx接口");
        URI uri = uriBuilder.build();
        //创建一个HttpGet的实例
        HttpGet httpGet = new HttpGet(uri);
        //用get的方式请求接口
        CloseableHttpResponse response = httpClient.execute(httpGet);
        //获得接口返回的信息
        HttpEntity httpEntity = response.getEntity();
        String jsonStr = EntityUtils.toString(httpEntity, "UTF-8");
    }
}
复制代码

最后我们根据得到视频的信息来请求弹幕信息,并且解析。

public class UpVideoDanmuTest {
    public static void main(String[] args) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        URIBuilder uriBuilder = new URIBuilder("xxxx接口");
        URI uri = uriBuilder.build();
        HttpGet httpGet = new HttpGet(uri);
        CloseableHttpResponse response= httpClient.execute(httpGet);
        HttpEntity httpEntity = response.getEntity();
        String xmlStr = EntityUtils.toString(httpEntity,"UTF-8");
        Document document = DocumentHelper.parseText(xmlStr);
        // 创建xml解析器
        SAXReader saxReader = new SAXReader();
        //通过document对象获取根元素的信息
        Element rootEle = document.getRootElement();
        // 通过根元素获取下面的所有直接子元素
        List<Element> rchilds = rootEle.elements("d");
        // 遍历根元素下所有直接子元素
        for (Element e : rchilds) {
            // 获取子元素名称
            System.out.println(e.getStringValue());
        }
    }
}
复制代码

现在我们可以将代码再次加工下,就能获得所有up主所有视频的所有弹幕了(代码太长了我就不放了,怕影响你们的阅读,如果想获得全部代码可以关注我的vx公主号:千珏(jue)发送b站)最后分析一下,就可以知道什么弹幕出现最多了

最后的效果

在这里插入图片描述

吼吼,大工告成,看来我的基本工还是在的,下周不怕接手老板的工作了,再也不怕被踢了。

我是千珏,一个可爱又迷人的博主,没关注的赶紧点个关注吧,欢迎来微信找我玩哦。

在这里插入图片描述

猜你喜欢

转载自juejin.im/post/5e5ff41ef265da57455b4d24