日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java实现爬取哔哩哔哩视频信息程序

發(fā)布時(shí)間:2024/1/8 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实现爬取哔哩哔哩视频信息程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,說(shuō)明

爬取b站視頻信息時(shí),如果直接用URL打開(kāi)流進(jìn)行爬取網(wǎng)站源碼時(shí),會(huì)發(fā)現(xiàn)Java程序上一片空白(既然大家看這篇文章了,想必大家頁(yè)遇到了這個(gè)問(wèn)題),說(shuō)明無(wú)法直接爬取,接下來(lái)我會(huì)講解怎么爬取b站。

二,程序演示

視頻地址:https://www.bilibili.com/video/BV1Kb411W75N/
(注意視頻地址一定要是這個(gè)格式的,因?yàn)楸境绦蜻€沒(méi)通用性,大家也可以改改啊啊啊)

程序代碼

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.Charset; import java.util.regex.Matcher; import java.util.regex.Pattern;public class text04_bilibili { public static void main(String[] args) {String urlstr1;String urlstr2;String text;String name;String time;int a=0;String bvid;Pattern p1;Matcher m1;Pattern p2;Matcher m2;//分享出來(lái)的b站視頻的鏈接urlstr1 = "https://www.bilibili.com/video/BV1Kb411W75N/";//bvid就是 BV1Kb411W75N 這串字符 下面這行代碼對(duì)取視頻的bvid沒(méi)有通用型,讀者可以自己改進(jìn)一下,現(xiàn)在只能處理b站視頻 分享 處獲得的鏈接bvid = urlstr1.substring(urlstr1.indexOf("BV"),urlstr1.lastIndexOf("/"));//b站視頻信息存放在https://api.bilibili.com/x/player/pagelist?bvid=BV1Kb411W75N這個(gè)鏈接里 或者h(yuǎn)ttps://api.bilibili.com/x/player/pagelist?aid=48144058這個(gè)鏈接里//我會(huì)在文章里講解bvid和aid在哪獲取(不用研究bvid和aid是啥,就把他當(dāng)作名字就行) 本程序利用bvid操作urlstr2 = "https://api.bilibili.com/x/player/pagelist?bvid="+bvid;//獲得網(wǎng)站源碼text = text04_bilibili.getURLText(urlstr2, "utf-8");p1 = Pattern.compile("part\":\"[\\s\\S]+?\"");m1 = p1.matcher(text);p2 = Pattern.compile("duration\":[\\s\\S]+?,");m2 = p2.matcher(text);while(m1.find()) {a++;if(m2.find()) {//此處獲得視頻名稱name = m1.group().substring(7,m1.group().length()-1);//此處獲得播放時(shí)長(zhǎng)time = m2.group().substring(10,m2.group().length()-1);//此處這個(gè)視頻播放鏈接就是https://www.bilibili.com/video/BV1Kb411W75N?p=第幾集System.out.println("編號(hào):"+a+" "+name+" <----> "+"視頻長(zhǎng)度: "+Integer.parseInt(time)/60+"分鐘"+Integer.parseInt(time)%60+"秒"+" 播放鏈接:https://www.bilibili.com/video/"+bvid+"?p="+a);}}System.out.println("\n\n總共:"+a+"集"); } public static String getURLText(String urlstr,String charset) {String temp = "";StringBuffer sb = new StringBuffer();try {URL url = new URL(urlstr);BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charset)));while((temp=br.readLine())!=null) {sb.append(temp);}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (IOException e) {// TODO: handle exception}return sb.toString(); } }

三,爬取信息需要的網(wǎng)址在哪找到的

1,bvid的那個(gè)網(wǎng)址在哪獲取

我把network里的所有網(wǎng)址都試了一遍才找到!!!
大家如果想找一下可以按我圖中操作,https://api.bilibili.com/x/player/pagelist?bvid=BV1Kb411W75N

2,aid在哪獲取

四,結(jié)束

哪里不會(huì)的可以評(píng)論區(qū)問(wèn)我哈

總結(jié)

以上是生活随笔為你收集整理的Java实现爬取哔哩哔哩视频信息程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。