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

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

[复制链接]
  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 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自动签到 这个脚本

    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

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

    使用道具 举报

  • TA的每日心情
    擦汗
    14 小时前
  • 签到天数: 532 天

    [LV.9]以坛为家II

    148

    主题

    420

    回帖

    1215

    积分

    版主

    积分
    1215

    油中2周年生态建设者

    发表于 2021-9-24 23:16:09 | 显示全部楼层
    懂技术又愿意分享的止于本站
    I don't hate programming but the fucking world.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-7-24 10:18
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    27

    主题

    100

    回帖

    235

    积分

    高级工程师

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

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

    油猴部分的东西
    我觉得这个论坛还真能解答大部分常见问题了...
    哈哈哈
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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