上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

[脚本猫bilibili实战]每日签到

[复制链接]

81

主题

827

帖子

676

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
676

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

发表于 2021-9-24 17:59:50 | 显示全部楼层 | 阅读模式

本系列教程计划将实现JunzhouLiu/BILIBILI-HELPER-PRE项目的大部分功能,通过这以整个项目来展示脚本猫的开发流程和特性,期间脚本猫还计划添加一些新的功能。

本节课来说bilibili的每日签到,在此之前已经有一个脚本了:bilibili自动签到,本节就详细说明这个脚本是怎么制作出来的。

签到

首先我们先确定签到的地方,有两个,一个是主站每天登录就能领取1个硬币和5点经验。

image-20210924162245126.png

另外一个地方是直播,需要自己点击签到。

image-20210924162402664.png

原理

原理很简单,简单来说就是模拟浏览器操作,往服务器发送接口请求,告诉服务器我们来签到了,请求签到的接口即可。我们需要通过抓包技术去找到这个接口,在浏览器上很简单,如果是APP的话,涉及到其它复杂的技术,以后再说。

在浏览器上,我们使用开发者工具(f12),切换到Network即可,我这里是Edge,显示的网络。

image-20210924164545575.png

本系列教程使用到的接口也可从这个项目中去获取:SocialSisterYi/bilibili-API-collect

接口

接口抓包流程我在视频教程中录制

两个接口:https://api.bilibili.com/x/web-interface/nav 每日签到(其实就是获取用户信息的,每天第一次调用,能够自动签到)

https://api.live.bilibili.com/sign/doSign (直播签到)

代码

签到一般是一天签到一次,所以我们可以在脚本中定义如下cron表达式

//@crontab * 1-23 once * *表示在每天的1-23小时检测运行一次,为什么是1-23呢?主要考虑到万一本地时间与服务器时间相差了几秒,在0点0分0秒签到的话可能会签到失败

接口调用我们直接使用:GM_xmlhttpRequest做GET请求即可,使用方法与油猴的GM_xmlhttpRequest一样,具体的使用方法可以去看:

[油猴脚本开发指南]脚本ajax的跨域请求 https://bbs.tampermonkey.net.cn/thread-136-1-1.html

另外我们需要脚本猫对脚本进行管理,可以监控运行中状态,我们需要用到Promise,像官方文档中说的一样,当签到成功,我们可以直接使用resolve()返回成功,因为某些原因失败,使用reject()返回失败和失败的原因

return new Promise((resolve, reject) => {
  if (Math.round((Math.random() * 10) % 2)) {
    resolve("ok");// 执行成功
  } else {
    reject("error");// 执行失败,并返回错误原因
  }
});

最后的代码可以直接看:bilibili自动签到 这个脚本

上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥

4

主题

99

帖子

36

积分

新手上路

Rank: 1

积分
36

中秋纪念章猫咪币纪念章活跃会员热心会员三好学生

发表于 2021-9-24 20:57:50 | 显示全部楼层
懂技术的人或不少
懂技术又愿意分享的
止于本站
一万个顶
回复

使用道具 举报

136

主题

416

帖子

446

积分

版主

Rank: 7Rank: 7Rank: 7

积分
446

猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

发表于 2021-9-24 23:16:09 | 显示全部楼层
懂技术又愿意分享的止于本站
bilibili:陈公子的话   公众号:陈公子的话
回复

使用道具 举报

13

主题

56

帖子

67

积分

注册会员

Rank: 2

积分
67

猫咪币纪念章活跃会员中秋纪念章

发表于 2021-9-25 10:54:51 | 显示全部楼层
懂技术又愿意分享的止于本站
回复

使用道具 举报

159

主题

1105

帖子

618

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
618
发表于 2021-9-25 23:45:16 | 显示全部楼层
脚本体验师001 发表于 2021-9-24 20:57
懂技术的人或不少
懂技术又愿意分享的
止于本站

油猴部分的东西
我觉得这个论坛还真能解答大部分常见问题了...
哈哈哈
混的人。
回复

使用道具 举报

发表回复

本版积分规则

快速回复 返回顶部 返回列表