[脚本猫bilibili实战]每日签到
本系列教程计划将实现(https://github.com/JunzhouLiu/BILIBILI-HELPER-PRE)项目的大部分功能,通过这以整个项目来展示脚本猫的开发流程和特性,期间脚本猫还计划添加一些新的功能。本节课来说bilibili的每日签到,在此之前已经有一个脚本了:(https://bbs.tampermonkey.net.cn/thread-370-1-1.html),本节就详细说明这个脚本是怎么制作出来的。
### 签到
首先我们先确定签到的地方,有两个,一个是主站每天登录就能领取1个硬币和5点经验。
!(data/attachment/forum/202109/24/175834yh43a2624kl6lakj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image-20210924162245126.png")
另外一个地方是直播,需要自己点击签到。
!(data/attachment/forum/202109/24/175840eev72c773r5vtv24.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image-20210924162402664.png")
### 原理
原理很简单,简单来说就是模拟浏览器操作,往服务器发送接口请求,告诉服务器我们来签到了,请求签到的接口即可。我们需要通过抓包技术去找到这个接口,在浏览器上很简单,如果是APP的话,涉及到其它复杂的技术,以后再说。
在浏览器上,我们使用开发者工具(f12),切换到Network即可,我这里是Edge,显示的网络。
!(data/attachment/forum/202109/24/175844tuutmgvgukvs02to.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image-20210924164545575.png")
本系列教程使用到的接口也可从这个项目中去获取:(https://github.com/SocialSisterYi/bilibili-API-collect)
### 接口
> 接口抓包流程我在视频教程中录制
两个接口:[https://api.bilibili.com/x/web-interface/nav](https://api.bilibili.com/x/web-interface/nav) 每日签到(其实就是获取用户信息的,每天第一次调用,能够自动签到)
[https://api.live.bilibili.com/sign/doSign](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](https://bbs.tampermonkey.net.cn/thread-136-1-1.html)
另外我们需要脚本猫对脚本进行管理,可以监控运行中状态,我们需要用到Promise,像官方文档中说的一样,当签到成功,我们可以直接使用`resolve()`返回成功,因为某些原因失败,使用`reject()`返回失败和失败的原因
```js
return new Promise((resolve, reject) => {
if (Math.round((Math.random() * 10) % 2)) {
resolve("ok");// 执行成功
} else {
reject("error");// 执行失败,并返回错误原因
}
});
```
最后的代码可以直接看:(https://bbs.tampermonkey.net.cn/thread-370-1-1.html) 这个脚本
懂技术的人或不少
懂技术又愿意分享的
止于本站
一万个顶 懂技术又愿意分享的止于本站 懂技术又愿意分享的止于本站
脚本体验师001 发表于 2021-9-24 20:57
懂技术的人或不少
懂技术又愿意分享的
止于本站
油猴部分的东西
我觉得这个论坛还真能解答大部分常见问题了...
哈哈哈
页:
[1]