一,说明

爬取b站视频信息时,如果直接用URL打开流进行爬取网站源码时,会发现Java程序上一片空白(既然大家看这篇文章了,想必大家页遇到了这个问题),说明无法直接爬取,接下来我会讲解怎么爬取b站。

二,程序演示

视频地址:https://www.bilibili.com/video/BV1Kb411W75N/
(注意视频地址一定要是这个格式的,因为本程序还没通用性,大家也可以改改啊啊啊)

程序代码

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;//分享出来的b站视频的链接urlstr1 = "https://www.bilibili.com/video/BV1Kb411W75N/";//bvid就是 BV1Kb411W75N 这串字符  下面这行代码对取视频的bvid没有通用型,读者可以自己改进一下,现在只能处理b站视频  分享  处获得的链接bvid = urlstr1.substring(urlstr1.indexOf("BV"),urlstr1.lastIndexOf("/"));//b站视频信息存放在https://api.bilibili.com/x/player/pagelist?bvid=BV1Kb411W75N这个链接里 或者https://api.bilibili.com/x/player/pagelist?aid=48144058这个链接里//我会在文章里讲解bvid和aid在哪获取(不用研究bvid和aid是啥,就把他当作名字就行)  本程序利用bvid操作urlstr2 = "https://api.bilibili.com/x/player/pagelist?bvid="+bvid;//获得网站源码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);//此处获得播放时长time = m2.group().substring(10,m2.group().length()-1);//此处这个视频播放链接就是https://www.bilibili.com/video/BV1Kb411W75N?p=第几集System.out.println("编号:"+a+"  "+name+"  <---->  "+"视频长度: "+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();
}
}

三,爬取信息需要的网址在哪找到的

1,bvid的那个网址在哪获取

我把network里的所有网址都试了一遍才找到!!!
大家如果想找一下可以按我图中操作,https://api.bilibili.com/x/player/pagelist?bvid=BV1Kb411W75N

2,aid在哪获取

四,结束

哪里不会的可以评论区问我哈

Java实现爬取哔哩哔哩视频信息程序相关推荐

  1. scrapy+selenium爬取B站生活区热门视频信息!

    在爬取动态网页时,一般尽量先找相应网页的API接口.但当接口不好找(或者接口的URL中含有加密参数)时,这时候就需要selenium来帮忙了.但由于selenium爬取速度比较慢,此时结合scrapy ...

  2. 视频文件详细信息python3_如何用python3爬取自己的收藏夹视频信息

    [Part1 查找请求链接.请求头.请求参数] 1.点开自己b站收藏夹的某一个子收藏夹的具体网址 2.右键,'检查': 3.点击开发工具栏的Network: 4.刷新网页: 5.选择XHR: 6.左侧 ...

  3. Python爬取 抖音 App短视频信息

    1. Charles获取视频接口  爬取之前先将手机与PC至于同局域网并确保手机WIFI的代理端口为8888,然后打开Charles获取视频请求的链接,如图: 2. 手动上滑触发视频请求接口   自动 ...

  4. python3网络爬虫--爬取b站用户投稿视频信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...

  5. python java 爬数据_如何用java爬虫爬取网页上的数据

    当我们使用浏览器处理网页的时候,有时候是不需要浏览的,例如使用PhantomJS适用于无头浏览器,进行爬取网页数据操作.最近在进行java爬虫学习的小伙伴们有没有想过如何爬取js生成的网络页面吗?别急 ...

  6. Java爬虫 --- 爬取王者荣耀英雄图片

    Java爬虫 - 爬取王者荣耀英雄图片 import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Docu ...

  7. Java爬虫 爬取某招聘网站招聘信息

    Java爬虫 爬取某招聘网站招聘信息 一.系统介绍 二.功能展示 1.需求爬取的网站内容 2.实现流程 2.1数据采集 2.2页面解析 2.3数据存储 三.获取源码 一.系统介绍 系统主要功能:本项目 ...

  8. java爬虫爬取笔趣阁小说

    java爬虫爬取笔趣阁小说 package novelCrawler;import org.jsoup.Connection; import org.jsoup.HttpStatusException ...

  9. Java爬虫爬取wallhaven的图片

    Java爬虫爬取wallhaven的图片 参考文章:JAVA Jsoup爬取网页图片下载到本地 需要的jar包:jsuop wallhaven网站拒绝java程序访问,所以要伪装报头. 发送请求时 C ...

  10. Java+Selenium爬取JavaScript返回的网页数据

    案例:本文主要描述如何根据快递单号使用Java+Selenium爬取"爱查快递网页"快递的跟踪信息并按照设计的数据格式返回数据 解决问题:爬取JavaScript返回的网页数据(网 ...

最新文章

  1. 【CV】吴恩达机器学习课程笔记第10章
  2. 算法学习(五)---队列
  3. IGMP Internet组管理协议 未完
  4. 一招让你彻底掌握C语言中运用宏以及#与##的妙用
  5. x264_sps_init
  6. python concurrent queue_Python的并发并行[2] - 队列[0] - queue 模块
  7. 又是一种用于JavaScript的前端国际化方案
  8. 视图中获取控制器中数据的方式
  9. Lua C API的正确用法
  10. python地理数据处理相关的操作
  11. mysql数据库java驱动下载(jdbc)
  12. 造节新案例,这家互联网公司用一场声音节圈住了声控党的心!
  13. 2021-07-15-2021年全球10大最佳单板计算机开发板(SBC)(第1-3名)
  14. O2O之下,腾讯觊夺移动支付大数据,手Q支付出战支付宝
  15. 首先下载安装data.table包_首次揭秘“超级签”与企业包行业内幕
  16. Android 图像混合技术
  17. mysql数据库自动生成数据库开发设计文档
  18. VMware Workstation安装Win7系统
  19. ORB_SLAM2新增稠密建图代码笔记
  20. 洧 誰 理 夲 亾 と 杺

热门文章

  1. java如何控制分屏显示,intellij idea 分屏设置 与快捷键
  2. java 两个url对比_一个URL模式中的两个slu ..
  3. VS2010 调试警告 解决方法
  4. 百度智能云BCC云服务器释放实例
  5. MySQL 部门员工工资表 综合练习
  6. 中文情感极性词典 NTUSD
  7. android shareSDK 微博分享案例
  8. safari 模拟手机显示
  9. Java之旅-Day3
  10. Java对PDF进行电子签章CA签名认证