bilibili提醒姬

/ 0评 / 0

bilibili-live reminder

破站live竟然不能自动提醒欸,好气,网上也没有现成的app,自己写一个提醒姬吧><
(Update:2017年第三季度mobile端已支持提醒)
(Update:2018年初发现bilibili-api)
Environment:

扩充技能点


website analyse


通过chrome检查网页源码查看静态数据,需要得到live状态的动态数据可知用异步加载传输

检查Network定位数据来源筛选 HXR

定位live-room信息,查看Respons

该请求头包含live-room异步信息,使用requests请求段数据

使用python3 smtplib模块发送邮件

使用 bilibili-api


Tips:建议以上消息完整填写否则会被表示成垃圾邮件

Tips:
PC通过DHCP分配的IP的socket主机信息会包含空格,在构造中为语法错误,解决方法在适配器 TCP/IPv4高级DNS设置中,手动填写此连接的DNS后缀

通过审查 XHS 可知room请求字符串两个: cid (播主的固定id)+ ts (猜测为日期混合生成)

测试单个 ts 长期有效

主程序Main

跑在服务器上


主要解决python程序在后台运行,常规通过ssh与服务器建立连接,所有的进程都在ssh组下,一旦ssh连接断开其下的所有进程都将被杀死

这里简单通过screen来解决问题,因为screen运行于1组下因此在创建的虚拟环境中当ssh断开脚本并不会被一并杀死

简单命令:

screen -S name 新建一个终端环境name为环境名称

screen -ls 或者 -list 查看所有的终端环境

kill -9 PID 杀死终端环境的任一个进程即可关闭screen环境

screen -wipe 清除死掉的环境

screen -r PID 进入 PID的环境

ctrl+A + D 暂时退出活跃的环境

ps -ef |grep python 查看当前的python脚本

screen python3 Main.py $ 在后台运行脚本,暂时退出即可保留后台

发表评论

电子邮件地址不会被公开。 必填项已用*标注