b站视频选集爬取--JAVA


前言

该文章主要介绍如何爬取b站视频选集信息。
适用范围:如在这里插入图片描述


所需第三方包

1、hutool

链接: 官网地址

一、b站视频页面源码分析

1、所处位置

获取的源码跟别的不太一样,需要的数据是在script里面的;在这里插入图片描述

使用jsoup获取并解析网页源码`

// 获取视频网页源码字符串
html = Jsoup.connect(video_url_edit.getText().trim()).execute();
// jsoup包解析字符串
Document doc = Jsoup.parse(html.body());
// 获取选集信息数据所在字符串
Elements bodys = doc.select("script");
// 遍历打印
for (Element body : bodys){
    System.out.println(body.toString());
}

打印内容如下:在这里插入图片描述
分析得所需选集信息数据在第六个script中,索引为5,即途中圈中位置
将后面的json字符串解析之后可以发现数据所处位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、程序编写

1.代码

代码如下:

// 获取视频网页源码字符串
html = Jsoup.connect(video_url_edit.getText().trim()).execute();
// jsoup包解析字符串
Document doc = Jsoup.parse(html.body());
// 获取选集信息数据所在字符串
Elements bodys = doc.select("script");

Element element = bodys.get(5);
// 分割出json字符串,并转化成json对象(用的是hutool工具包)
String text = HtmlUtil.cleanHtmlTag(element.toString().trim());
String i = "=";
JSONObject jsonObject = new JSONObject(text.trim().split(i, 2)[1]);

// 按照路径获取选集题目信息所在的json数组
Object vedio_items = jsonObject.getByPath("videoData.pages");
JSONArray vedio_items_json_array = new JSONArray(vedio_items);
Iterable<JSONObject> vedio_items_json_iter = vedio_items_json_array.jsonIter();

// 遍历输出
for (JSONObject iter : vedio_items_json_iter){
    System.out.println(iter.getObj("part").toString().trim());
}

总结

其中主要是需要确定所需要的信息在源码中的哪个位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PareCycest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值