当前位置: 首页 > article >正文

Javascript 脚本查找B站限时免费番剧

目录

前言

脚本编写

脚本


 

前言

B站的一些番剧时不时会“限时免费”,白嫖党最爱,主打一个又占到便宜的快乐。但是在番剧索引里却没有搜索选项可以直接检索“限时免费”的番剧,只能自己一页一页的翻去查看,非常麻烦。

自己找限免番剧这个流程可以概括为:翻页-查找“限时免费”的番剧,重复直至遍历整个番剧索引,这个工作简单重复,意味着就可以用脚本来完成。

脚本编写

打开B站,进入到索引检索页面

番剧索引 - 哔哩哔哩 (゜-゜)つロ 干杯~-bilibilibilibili是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。https://www.bilibili.com/anime/index先找到一个“限时免费”的番剧,这里以“炮姐”这部番剧为例(这番在B站估计是永久限免的)

这里是在第11页找到的

5941ab403669458490f3aeffe2243716.png

按F12,打开开发者工具

查看“限时免费”标签元素以及番剧名称标签元素

bd45b24cf13749c6bceedafa40e62e0f.png

 可以看到“限时免费”标签对应的 class 为 corner-tag badge_3

意味着我们可以直接通过

document.getElementsByClassName('corner-tag badge_3');

 来直接获取当前页面所有的“限时免费”<span>标签

6804d269eddd430cb13f6e28fe49ed4d.png

拿到<span>标签后,就能通过元素的相邻位置,拿到该标签下对应的番剧名字

document.getElementsByClassName('corner-tag badge_3')[0].parentElement.nextElementSibling.text

 e0814fa7a1fe4f0584f5220820ef1230.png

 这样就能使用脚本来获取到当前页面所有的限免番剧名字了,不用自己一行行看了

解决了当前页面的查找,接下来只需要让脚本实现页面跳转就行了

查看分页的标签元素

a0da56d2c9f14eed8197cecacb02d16d.png

 可以看到当前页的标签元素 class 为 p active

document.getElementsByClassName('p active');

下一页的标签元素 class 为 p nextpage

document.getElementsByClassName('p next-page');

 查找完当前页面后,只需要判断当前页面是否还有”下一页“这个标签,若存在,则跳转后继续查找,否则脚本运行结束,输出所有的限免番剧

如下所示:

脚本开始运行,逐页查找”限时免费“番剧

740b42de80864effae8fa3c58accc3e4.png

查找完成,输出找到的”限时免费“番剧

506dca0384954b07b3c207ad7b1289ff.png

脚本

javascript: (function() {
    var free_animation = [];
    function find_free_animation() {
        var current_page = document.getElementsByClassName('p active')[0].text;

        var span = document.getElementsByClassName('corner-tag badge_3');

        for (let i = 0; i < span.length; i++) {
            let title = span[i].parentElement.nextElementSibling.text;
            let animation = {title: title, page: current_page};
            console.log(animation);
            free_animation.push(animation);
        }

        nextPage = document.getElementsByClassName('p next-page')[0];
        if (nextPage) {
            nextPage.click();
            setTimeout(find_free_animation, 1000);
        } else {
            console.log(free_animation)
        }
        
    }
    find_free_animation();
})();

 

 

 


http://www.kler.cn/news/358646.html

相关文章:

  • 对“一个中心,三重防护”中安全管理中心的理解
  • jmeter 从多个固定字符串中随机取一个值的方法
  • ABAQUS应用11——支座弹簧
  • HTML3D旋转相册
  • vue3 在store的index.js
  • scala 类的继承
  • 2009年国赛高教杯数学建模A题制动器试验台的控制方法分析解题全过程文档及程序
  • 在Windows下使用MFC/Win32 API进行文件夹内所有文件的复制操作,可以通过遍历目录中的文件并逐个复制来实现
  • Android Studio 的 Gradle 任务列表只显示测试任务
  • 51单片机应用开发---外部中断(按键为例)
  • adminPage-vue3依赖 v1.2.0新增组件 DetailsModule说明文档
  • SOC启动
  • Dockerfile 中,把多个 RUN 合并在一起,能减少镜像尺寸吗?
  • 室内定位论文整理-20241016
  • 考拉悠然CEO沈复民受邀出席人工智能建议提案办理座谈会并发言
  • 【踩坑日记36】ModuleNotFoundError: No module named ‘taming‘
  • PyTorch 中各类损失函数介绍
  • 【GT240X】如何在 Linux 中格式化磁盘
  • Spring Boot:中小型医院网站的技术革新
  • 服务器作业1