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站)最後分析一下,就可以知道什麼彈幕出現最多了
最後的效果
吼吼,大工告成,看來我的基本工還是在的,下週不怕接手老闆的工作了,再也不怕被踢了。
我是千珏,一個可愛又迷人的博主,沒關注的趕緊點個關注吧,歡迎來微信找我玩哦。