不熬夜,不修仙,B站打怪升级脚本一键搞定!
文 | 某某白米饭
来源:Python 技术「ID: pythonall」
在 B 站上看了进击的金厂长的投稿的视频如:B 界等级修仙传,B 界等级修魔传等,觉得 B 站升级对小编这种白嫖党 + 懒癌党太不友好了,就码了这篇 B 站升级脚本。
获取个人信息
用自己的账号登录到 B 站并打开个人页面,按 F12 控制面板。可以找到一个 https://api.bilibili.com/x/space/myinfo?jsonp=jsonp&callback=__jp0
的地址,从相应的返回值来看,这就是个人资料的请求地址。并且把请求头中的 cookie 复制到代码中,让我们可以正常用代码登录 B 站。
这里的 cookie 是一串字符串,在 requests.get() 请求的时候肯定是要转换为字典类型的。其中一个 bili_jct 比较关键,在后续操作中将被用到。
def convert_cookies_to_dict(cookies):cookies = dict([l.split("=", 1) for l in cookies.split("; ")])return cookies
下面代码就用上面转换成字典的 cookie 获取 B 站的个人资料。
def getInfo(cookie):url = "http://api.bilibili.com/x/space/myinfo"resp = requests.get(url, cookies=cookie).textmyinfo = json.loads(resp)data = myinfo['data']mid = data['mid']name = data['name']level_exp = data['level_exp']current_level = level_exp['current_exp']current_exp = level_exp['current_exp']next_exp = level_exp['next_exp']sub_exp = int(next_exp) - int(current_exp)days = int(int(sub_exp)/70)coin = data['coins']print("{},你的等级是{},当前经验是{},下一级经验是{},还需要{}天升级,有{}个硬币".format(name, current_level,current_exp,next_exp,days,coin))
观看视频
因为小编实在是不想解析页面,就在网上找了一个 B 站的 http://api.bilibili.cn/recommend
接口来获取视频地址。返回值是一个 json 串,这里面有 aid 和 bvid。
def getVideo(cookie):url = "http://api.bilibili.cn/recommend"resp = requests.get(url, cookies=cookie).textdata = json.loads(resp)list_length = len(data['list'])result = []for i in range(list_length):bvid = data['list'][i]['bvid']aid = data['list'][i]['aid']result.append({'bvid': bvid, 'aid': aid})return result
获取到 aid 和 bvid 后,打开播放视频页面会有发送心跳链接到服务器,这个应该可以看做是看过视频的。
def view(bvid, aid, bili_jct, playedTime):url = "https://api.bilibili.com/x/click-interface/web/heartbeat"header = {"origin": "https://www.bilibili.com","referer": "https://www.bilibili.com/video/"+bvid,"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36","cookie": cookies}data = {'aid': aid,'bvid': bvid,'played_time': playedTime,'csrf': bili_jct}resp = requests.post(url, data = data ,headers=header).textjson_data = json.loads(resp)code = json_data['code']time.sleep()if code == 0:print('视频观看成功,bvid 号为:' + bvid)else:print('视频观看失败,bvid 号为:' + bvid)
投币
投币比较简单,只有 4 个参数,但是每天就只能投 5 个币,得 50 经验。
def coin(bvid, aid, csrf):url = "https://api.bilibili.com/x/web-interface/coin/add"data = {'aid': aid,'multiply': 1,'select_like': 1,'cross_domain': 'true','csrf': csrf}header = {"origin": "https://www.bilibili.com","referer": "https://www.bilibili.com/video/"+bvid,"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36","cookie": cookies}resp = requests.post(url, headers=header, data=data).textdata = json.loads(resp)code = data['code']if code == 0:print("投币成功")else:print('投币失败')
分享视频
在分享到动态的时候,可以看到有一个 share 的地址,然后小编就用这个试了好几次都没有成功,只能求助万能的 github。
上面这个地址没成功,都是分享失败,下面的截图是 github 的,分享成功。
def share( bvid, csrf):url = 'https://api.bilibili.com/x/web-interface/share/add'data = {'csrf': csrf,'bvid': bvid}header = {'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',"Connection": "keep-alive","origin": "https://t.bilibili.com","referer": 'https://t.bilibili.com',"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36","cookie": cookies}resp = requests.post(url, data=data, headers=header).textjson_data = json.loads(resp)code = json_data['code']if code == 0:print('视频分享成功')else:print('视频分享失败')
总结
python 小脚本总能在想不到的地方有意外的惊喜。人生苦短,认为本文还可以的朋友点个赞和再看。
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:某某白米饭
不熬夜,不修仙,B站打怪升级脚本一键搞定!相关推荐
- iis6 php mysql 一键_一键搞定:php5 环境集成安装包 for IIS6 修正版
要更新: 1:针对上一个版本所有的问题进行了修复. 2:已经实现了一键安装,无需手动添加应用程序扩展. 3:修正在一些系统平台上面会有phpmyadmin不能登录的现象. ============== ...
- 打怪小游戏(取名修仙之路)进度66%
#include<bits/stdc++.h> #include<Windows.h> #include<stdlib.h> #include<stdio.h ...
- c++打怪小游戏——修仙之路1.0
本游戏是由yang211988,YT1777,小张共同制作的,请勿抄袭. 这个游戏我可是做了一个月的,麻烦点一下赞. 虽然还没完全搞好. 但是还是能玩的. 只不过不是很好玩罢了. 不过也可以. 算了, ...
- 北风修仙笔记—2020年5月
HI,欢迎来到北风的修仙笔记. 这里会记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜于山.知乎@北风博客 .微博@ ...
- 北风修仙笔记—2020年2月
一个脑抽的决定,算是记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜玉山.知乎@北风博客 .微博@北风zipo. 2 ...
- 2年6个月11天,外包到阿里的修仙之路
前言 估计有同学会有疑问,为什么要精确到天?是为了装逼吗? 答:仅仅是为了证明咱的严谨(其实就是为了装逼) 肯定有同学心里会吐槽:真的是外包吗?估计又是个标题党,吹牛逼,*&¥%¥ 答:真的是 ...
- 2 年 6 个月 11 天,外包到阿里的修仙之路!| 原力计划
作者 | 程序员囧辉 责编 | 王晓曼 出品 | CSDN博客 前言 估计有同学会有疑问,为什么要精确到天?是为了装逼吗? 答:仅仅是为了证明咱的严谨(其实就是为了装逼) 肯定有同学心里会吐槽:真的是 ...
- 工业物联网(IIoT)生态构建三字经:先做人、后修心、再打怪!
这周我参加了西门子MindSphere的主题日活动,还客串了嘉宾对话环节的主持人,有图有真相,不过机智如我,在你翻到之前,正面大头照已被我雪藏. 这篇文章并不想谈MindSphere,而是想谈谈这一轮 ...
- 北风修仙笔记—2020年3月
HI,欢迎来到北风的修仙笔记. 这里会记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜于山.知乎@北风博客 .微博@ ...
最新文章
- JsonCpp的简单使用方法
- 密码找回功能可能存在的问题
- html正则表达式确认密码,如何使用正则表达式在流星中验证确认密码
- document 文挡对象 - JavaScript脚本语言描述
- Uncaught SyntaxError: Invalid shorthand property initializer
- ARM汇编伪指令 .word
- 网络研讨室_免费网络研讨会:Java应用程序中的吞咽异常
- Spring - Bean注解配置光速入门
- stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置
- restful get不传参数404_flask-restful编写上传图片api
- 大数据之-Hadoop伪分布式_Log日志查看和NN格式化前强调---大数据之hadoop工作笔记0024
- 机器视觉光源之LED光源
- 禁用浏览器cache,是浏览器上的回退按钮失效。
- 怎么查看XP系统是32位还是64位
- 相对路径与绝对路径区别
- 面试70问经典回答技巧
- java mcv_spring框架mcv的工作原理是什么?
- 【图像识别】【读论文】纸币图像特征提取和识别问题
- 56个JavaScript 实用工具函数助你提升开发效率!
- java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署