Java爬虫案例之获取视频详细点赞、收藏等参数

最近是b站的11周年庆,相信不少朋友也看过了这个特映视频《喜相逢》了吧?看完视频给个三连支持,衷心祝愿小破站越来越好!不过在长按完大拇指后,看着这极高的点赞和硬币,你是不是有种想了解它的实际数目的好奇心?哈哈,那么咱就立马操练起来,用编程来拿到这些数据吧!

一、运用开发者工具

首先打开b站的首页,搜索框内键入“喜相逢”。

(哦豁又有新背景图了,所以。。?)

上篇文章 有讲到如何用开发者工具,这里不再赘述。进入视频界面并记得打开开发者工具刷新一下。漫长的筛查过后,只要你英语好一点,有耐心一点,就能左右对比到我们所要的信息了:

注意:如果你自己多找几个视频,会发现每个视频界面对应的referer的不一样的,所以后面代码里构造请求对象时这部分不能写死。

二、代码实现

1、准备:

安装okhttp库,能实现简单快速的http调用:

<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.1.0</version>
</dependency>

导包:

// 异常
import java.io.IOException;
// http请求
import okhttp3.Request;
import okhttp3.Call;
import okhttp3.OkHttpClient;
// json数据解析
import com.alibaba.fastjson.JSON;
import java.util.Map;
2、获得文本数据:

不同于上一次下载图片,这次我们只要求把json格式的文本数据获取来,并进行解析得到我们要的信息即可。

// 上文提到过referer是动态的,所以我们作为参数传入
public String getContent(String url, String referer) {// 先实例化一个 OkHttpClientOkHttpClient client = new OkHttpClient();// 实例化 Request,定义请求的各种参数;header添加以模拟浏览器访问环境Request request = new Request.Builder().url(url).addHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36").addHeader("Referer", referer)//.addHeader("Host","www.bilibili.com").build();String result = null;// 调用可能失败并抛出异常,需进行捕捉try {// 构建调用对象Call call = client.newCall(request);// 请求执行后的结果Response rep = call.execute();// 获取状态码int code = rep.code();System.out.println("状态码为"+ code);// 获取调用结果,并返回字符串内容的方法(适用请求字符文本文件)result = rep.body().string();} catch (IOException e) {System.out.println("request" + url + " error . ");e.printStackTrace();}return result;}
3、main函数打印
import com.alibaba.fastjson.JSON;
import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;import java.io.IOException;
import java.util.Map;public class TextFileAsker {public String getContent(String url, String referer) { ... }public static void main(String[] args) {TextFileAsker asker = new TextFileAsker();String url = "https://api.bilibili.com/x/web-interface/archive/stat?aid=626032318";String referer = "https://www.bilibili.com/video/BV1yt4y1X75B";// 获得文本数据String content = asker.getContent(url, referer);// 根据开发者工具里Preview里的数据结构进行json解析Map contentObj = JSON.parseObject(content, Map.class);Map data = (Map)contentObj.get("data");// 依次提取所需信息String like = data.get("like").toString();String coin = data.get("coin").toString();String view = data.get("view").toString();String share = data.get("share").toString();String favorite = data.get("favorite").toString();System.out.println("播放量 点赞 收藏 硬币 转发");System.out.println(view + " " +like + " " +favorite+ " " +coin + " " +share + " ");}}

运行结果如下:

(就写了点博客的时间,又多了好多播放量)

以上便是关于视频点赞数等一些参数的详细数据获得方式了,对于类似的情况,都可以自己在开发者工具里进行仔细搜索,细心一点,耐心一点,你总能让它出现在自己的程序输出里的。

简易的Java网络爬虫小案例(二):获取b站视频的详细点赞、收藏和硬币数相关推荐

  1. Java网络爬虫小案例(详细版)

    有bug:修改了<scope>test</scope>后,在控制台还是不能显示日志信息,没找到解决办法 配置了log4j.properties,控制台没有显示日志信息_连胜是我 ...

  2. Java网络爬虫实战案例一

    紧接我们上次的问题,如何获取服务器发送的资源,保存到本地?上一篇文章见java网络爬虫核心原理. 一.Java IO流三分游(input,output)   我们知道计算机是用来处理数据的.所有的程序 ...

  3. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  4. Java网络爬虫该如何学习

    文章目录 引言 怎么入门网络爬虫 课程特色 学完本课程能收获什么 引言 互联网以及移动技术的飞速发展,使得全球数据量呈现前所未有的爆炸式增长态势.例如,用户在互联网上的搜索数据.交易数据.评论数据.社 ...

  5. Java网络爬虫学习记录(请求基础篇)

    目录 个人实验遇见错误集: 一.javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX ...

  6. 学 Java 网络爬虫,需要哪些基础知识?

    说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬 ...

  7. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  8. 第三十六期:学 Java 网络爬虫,需要哪些基础知识?

    说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬 ...

  9. Java Web应用小案例:猜数小游戏

    Java Web应用小案例:猜数小游戏 文章目录 一.演示Python版猜数游戏 二.JSP版猜数游戏程序运行效果

最新文章

  1. Apache的Commons Lang和BeanUtils
  2. 老实工作没有其他收入,为什么还要补缴个税?
  3. 英国政府发布5G政策文件
  4. python爬虫搜特定内容的论文_Python 爬虫爬取指定博客的所有文章
  5. Unity教程:如何使用枚举来帮助简化游戏开发
  6. mysql 文件放网络盘_MySQL InnoDB的磁盘文件及落盘机制
  7. Datawhale-零基础入门NLP-新闻文本分类Task04
  8. hive 如何将数组转成字符串_hive详细笔记(八)-Hive之列转行和行转列(附带讲解视频 )...
  9. 百度启用Baidu.co.jp域名,有利于其在日本推广
  10. CentOS7环境下在/离线安装GCC与GCC-C++
  11. Redis基础知识 之——发布/订阅
  12. 简述主成分分析法的基本步骤_主成分分析的基本步骤
  13. 台式计算机用什么电源线,电脑电源线有什么规格
  14. win10常用快捷键合集
  15. RabbitMQ:四种ExChange用法
  16. 当moba遇上麻将——刀塔自走棋
  17. OFFICE 您正试图运行的函数包含有宏或需要宏语言的解决方法
  18. 巧用友盟UShare、ULink玩转裂变营销
  19. Python 人工智能入门须知
  20. 面向对象;构造函数;原型对象

热门文章

  1. 最近最火的手机锁屏软件
  2. 王码星空,一场令人感伤的发布会
  3. Sql Server2019日志自动清理
  4. 四角号码查询器 第3版 发布
  5. 计算机硬件听课教师评价,老师听课评语大全
  6. C语言《数据结构》课程设计任务书
  7. W10家庭版不用重装系统直接升级为专业版
  8. Android 打开关闭硬件加速
  9. 用requests包爬取今日头条新闻标题
  10. 迷你星域冒险服务器维护中,迷你世界星域冒险太难了?官方攻略上线!是时候学习团队合作了...