文 | 某某白米饭

来源: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站打怪升级脚本一键搞定!相关推荐

  1. iis6 php mysql 一键_一键搞定:php5 环境集成安装包 for IIS6 修正版

    要更新: 1:针对上一个版本所有的问题进行了修复. 2:已经实现了一键安装,无需手动添加应用程序扩展. 3:修正在一些系统平台上面会有phpmyadmin不能登录的现象. ============== ...

  2. 打怪小游戏(取名修仙之路)进度66%

    #include<bits/stdc++.h> #include<Windows.h> #include<stdlib.h> #include<stdio.h ...

  3. c++打怪小游戏——修仙之路1.0

    本游戏是由yang211988,YT1777,小张共同制作的,请勿抄袭. 这个游戏我可是做了一个月的,麻烦点一下赞. 虽然还没完全搞好. 但是还是能玩的. 只不过不是很好玩罢了. 不过也可以. 算了, ...

  4. 北风修仙笔记—2020年5月

    HI,欢迎来到北风的修仙笔记. 这里会记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜于山.知乎@北风博客 .微博@ ...

  5. 北风修仙笔记—2020年2月

    一个脑抽的决定,算是记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜玉山.知乎@北风博客 .微博@北风zipo. 2 ...

  6. 2年6个月11天,外包到阿里的修仙之路

    前言 估计有同学会有疑问,为什么要精确到天?是为了装逼吗? 答:仅仅是为了证明咱的严谨(其实就是为了装逼) 肯定有同学心里会吐槽:真的是外包吗?估计又是个标题党,吹牛逼,*&¥%¥ 答:真的是 ...

  7. 2 年 6 个月 11 天,外包到阿里的修仙之路!| 原力计划

    作者 | 程序员囧辉 责编 | 王晓曼 出品 | CSDN博客 前言 估计有同学会有疑问,为什么要精确到天?是为了装逼吗? 答:仅仅是为了证明咱的严谨(其实就是为了装逼) 肯定有同学心里会吐槽:真的是 ...

  8. 工业物联网(IIoT)生态构建三字经:先做人、后修心、再打怪!

    这周我参加了西门子MindSphere的主题日活动,还客串了嘉宾对话环节的主持人,有图有真相,不过机智如我,在你翻到之前,正面大头照已被我雪藏. 这篇文章并不想谈MindSphere,而是想谈谈这一轮 ...

  9. 北风修仙笔记—2020年3月

    HI,欢迎来到北风的修仙笔记. 这里会记录下北风在人生路上升级打怪的一些思考,每月月底都会以本文的形式在公众号集中发布. 当然如果想提前剧透的,可以关注我的知识星球@采铜于山.知乎@北风博客 .微博@ ...

最新文章

  1. JsonCpp的简单使用方法
  2. 密码找回功能可能存在的问题
  3. html正则表达式确认密码,如何使用正则表达式在流星中验证确认密码
  4. document 文挡对象 - JavaScript脚本语言描述
  5. Uncaught SyntaxError: Invalid shorthand property initializer
  6. ARM汇编伪指令 .word
  7. 网络研讨室_免费网络研讨会:Java应用程序中的吞咽异常
  8. Spring - Bean注解配置光速入门
  9. stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置
  10. restful get不传参数404_flask-restful编写上传图片api
  11. 大数据之-Hadoop伪分布式_Log日志查看和NN格式化前强调---大数据之hadoop工作笔记0024
  12. 机器视觉光源之LED光源
  13. 禁用浏览器cache,是浏览器上的回退按钮失效。
  14. 怎么查看XP系统是32位还是64位
  15. 相对路径与绝对路径区别
  16. 面试70问经典回答技巧
  17. java mcv_spring框架mcv的工作原理是什么?
  18. 【图像识别】【读论文】纸币图像特征提取和识别问题
  19. 56个JavaScript 实用工具函数助你提升开发效率!
  20. java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署

热门文章

  1. 女性对婚姻观和爱情观
  2. v1.5宝可梦综合耐久最大化计算器
  3. 新手站长如何做一个手机网站?
  4. Stoker的Java学习之字节流与字符流
  5. Unity2D游戏开发——Sprite碎裂特效的实现(独立解耦的组件,附详细流程和代码)
  6. linux vma,VMA(虚拟内存空间)_百度百科
  7. 五一节,送给自己快乐
  8. uniApp真机调试和打包
  9. 跟着王进老师学开发Python篇第三季:Tkinter GUI项目实战篇-王进-专题视频课程
  10. IO多路复用机制详解