作者:某某白米饭
来源:Python 技术
在 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).text
myinfo = 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).text data = 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).text
json_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).text data = 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).text
json_data = json.loads(resp)
code = json_data['code'] if code == 0:
print('视频分享成功') else:
print('视频分享失败')
python 小脚本总能在想不到的地方有意外的惊喜。人生苦短,认为本文还可以的朋友点个赞和再看。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-02最近我发现一个绝招,用DeepSeek AI处理Excel数据简直太爽了!处理速度嘎嘎快! 平常一整天的表格处理工作,现在只要三步就能搞 ...
2025-04-01你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28