目录
前言
脚本编写
脚本
前言
B站的一些番剧时不时会“限时免费”,白嫖党最爱,主打一个又占到便宜的快乐。但是在番剧索引里却没有搜索选项可以直接检索“限时免费”的番剧,只能自己一页一页的翻去查看,非常麻烦。
自己找限免番剧这个流程可以概括为:翻页-查找“限时免费”的番剧,重复直至遍历整个番剧索引,这个工作简单重复,意味着就可以用脚本来完成。
脚本编写
打开B站,进入到索引检索页面
番剧索引 - 哔哩哔哩 (゜-゜)つロ 干杯~-bilibilibilibili是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。https://www.bilibili.com/anime/index先找到一个“限时免费”的番剧,这里以“炮姐”这部番剧为例(这番在B站估计是永久限免的)
这里是在第11页找到的
按F12,打开开发者工具
查看“限时免费”标签元素以及番剧名称标签元素
可以看到“限时免费”标签对应的 class 为 corner-tag badge_3
意味着我们可以直接通过
document.getElementsByClassName('corner-tag badge_3');
来直接获取当前页面所有的“限时免费”<span>标签
拿到<span>标签后,就能通过元素的相邻位置,拿到该标签下对应的番剧名字
document.getElementsByClassName('corner-tag badge_3')[0].parentElement.nextElementSibling.text
这样就能使用脚本来获取到当前页面所有的限免番剧名字了,不用自己一行行看了
解决了当前页面的查找,接下来只需要让脚本实现页面跳转就行了
查看分页的标签元素
可以看到当前页的标签元素 class 为 p active
document.getElementsByClassName('p active');
下一页的标签元素 class 为 p nextpage
document.getElementsByClassName('p next-page');
查找完当前页面后,只需要判断当前页面是否还有”下一页“这个标签,若存在,则跳转后继续查找,否则脚本运行结束,输出所有的限免番剧
如下所示:
脚本开始运行,逐页查找”限时免费“番剧
查找完成,输出找到的”限时免费“番剧
脚本
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();
})();