- B站升级太慢?有了它,LV6轻轻松松
前言
最近群里Python学习氛围还不错,群友还专门开了Python学习的版块
- Python基础知识 https://www.iculture.cc/forum/4439
- Python安全攻防 https://www.iculture.cc/forum/4442
然后,为了让大家更好的了解Python的魅力,今天给大家分享一个B站刷经验的Python脚本。
往期推荐
视频演示
使用方法
获取Cookie
先访问http://api.bilibili.com/x/space/myinfo
![图片[1]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211211040810213-1024x694.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后打开B站每日刷经验脚本.exe
软件,将cookies粘贴到软件中
![图片[2]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211211041654584-1024x442.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
回车即可,进行自动化刷经验
![图片[3]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211211041725558.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
等待运行结束,我们可以看到直观的变化,使用之前经验是2698
![图片[4]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211211041809341.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
使用之后经验是2753
![图片[5]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2021/12/20211211041844342.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
完成了每天需要动手完成的任务,是不是还挺香的?
软件下载
源码下载
如果你想修改上面的提示词,或者其他相关功能,你可以获取源码,然后修改Python代码
通过云函数
很多人之前问的能不能我把脚本挂到哪里,就可以每天自动签到,当然可以了!
打开后,我们需要先进行授权
![图片[6]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033306519-1024x428.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
![图片[7]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033316861.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
点击新建函数
![图片[8]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033433941-1024x386.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后按照下面的要求选择
![图片[9]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033600832-1024x452.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
在线编辑的代码位置填入下面的内容(第10行要填入你的cookie)
![图片[10]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033844792-1024x411.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
# -*- coding: utf8 -*-
import requests
import json
import time
import random
# 填写cookie即可运行
''' 1、浏览器登入哔哩网站 2、访问 http://api.bilibili.com/x/space/myinfo 3、F12看到cookie的值粘贴即可 '''
cookies = ""
# cookie转字典
def extract_cookies(cookies):
global csrf
cookies = dict([l.split("=", 1) for l in cookies.split("; ")])
csrf = cookies['bili_jct']
return cookies
# 银币数
def getCoin():
cookie = extract_cookies(cookies)
url = "http://account.bilibili.com/site/getCoin"
r = requests.get(url, cookies=cookie).text
j = json.loads(r)
money = j['data']['money']
return int(money)
# 个人信息
def getInfo():
global uid
url = "http://api.bilibili.com/x/space/myinfo"
cookie = extract_cookies(cookies)
r = requests.get(url, cookies=cookie).text
j = json.loads(r)
uid = j['data']['mid']
level = j['data']['level']
current_exp = j['data']['level_exp']['current_exp']
next_exp = j['data']['level_exp']['next_exp']
sub_exp = int(next_exp) - int(current_exp)
days = int(int(sub_exp) / 65)
coin = getCoin()
times = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
msg = "你目前的等级是" + str(level) + "级" + " ,目前的经验:" + \
str(current_exp) + ",离下个等级还差" + str(sub_exp) + "经验" + \
" ,需要" + str(days) + "天," + "剩余硬币还有 " + str(coin) + "个。"
print(msg)
return msg
# 推荐动态
def getActiveInfo():
url = "http://api.bilibili.com/x/web-interface/archive/related?aid=" + \
str(7)
cookie = extract_cookies(cookies)
r = requests.get(url, cookies=cookie).text
j = json.loads(r)
return j
# 推荐动态第二种方式
def getVideo():
random_page = random.randint(0, 167)
url = "http://api.bilibili.cn/recommend?page=" + str(random_page)
cookie = extract_cookies(cookies)
r = requests.get(url, cookies=cookie).text
j = json.loads(r)
return j
# 投币 分享5次
def Task():
coin_num = getCoin()
# 需要投币的个数
num = 5
if coin_num <= num:
num = coin_num
coin_count = 0
count = 0
while True:
j = getVideo()
list_len = len(j['list'])
random_list = random.randint(1, list_len - 1)
bvid = j['list'][random_list]['bvid']
aid = j['list'][random_list]['aid']
print(str(count) + ' ---- ' + str(bvid) + ' ---- ' + str(aid))
count = count + 1
toview(bvid)
time.sleep(5)
shareVideo(bvid)
time.sleep(5)
if coin_count < num:
coin_code = tocoin(aid, bvid)
if coin_code == -99:
return
if coin_code == 1:
coin_count = coin_count + 1
if coin_count == num:
break
print('----------------------')
# 观看视频【不会点赞投币】
def toview(bvid):
playedTime = random.randint(10, 100)
url = "https://api.bilibili.com/x/click-interface/web/heartbeat"
data = {
'bvid': bvid,
'played_time': playedTime,
'csrf': csrf
}
cookie = extract_cookies(cookies)
r = requests.post(url, data=data, cookies=cookie).text
j = json.loads(r)
code = j['code']
if code == 0:
print('观看视频成功!')
else:
print('观看视频失败!')
# 分享视频
def shareVideo(bvid):
url = "https://api.bilibili.com/x/web-interface/share/add"
data = {
'bvid': bvid,
'csrf': csrf
}
cookie = extract_cookies(cookies)
# 需要请求头
header = {
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38",
}
r = requests.post(url, data=data, cookies=cookie, headers=header).text
j = json.loads(r)
code = j['code']
if code == 0:
print('分享成功!')
else:
print('分享失败!')
# 投币函数
def tocoin(aid, bvid):
coinNum = getCoin()
if coinNum == 0:
print('not enough coin !')
return -99
url = "https://api.bilibili.com/x/web-interface/coin/add"
headers = {
'authority': 'api.bilibili.com',
'method': 'POST',
'path': '/x/web-interface/coin/add',
'scheme': 'https',
'accept': 'application/json, text/plain, */*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'content-type': 'application/x-www-form-urlencoded',
'origin': 'https://www.bilibili.com',
'pragma': 'no-cache',
'referer': 'https://www.bilibili.com/video/' + str(bvid) + '?spm_id_from=444.41.0.0',
'sec-ch-ua': '"Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
data = {
'aid': aid,
'multiply': 1,
'select_like': 1,
'cross_domain': 'true',
'csrf': csrf
}
cookie = extract_cookies(cookies)
r = requests.post(url, data=data, headers=headers, cookies=cookie).text
j = json.loads(r, strict=False)
code = j['code']
if code == 0:
print(str(bvid) + '投币成功!')
return 1
else:
print(str(bvid) + '投币失败!')
return 0
# 一键三连
def toall(bvid):
coinNum = getCoin()
if coinNum == 0:
print('硬币不够了!')
return -99
url = "http://api.bilibili.com/x/web-interface/archive/like/triple"
data = {
'bvid': bvid,
'csrf': csrf
}
cookie = extract_cookies(cookies)
r = requests.post(url, data=data, cookies=cookie).text
j = json.loads(r)
code = j['code']
if code == 0:
print(str(bvid) + '投币成功!')
return 1
else:
print(str(bvid) + '投币失败')
return 0
# 开启任务运行
def run():
getInfo()
Task()
# 云函数使用
def main_handler(event, context):
print("Received event: " + json.dumps(event, indent=2))
print("Received context: " + str(context))
run()
return ("------ end ------")
if __name__ == '__main__':
run()
填入cookie后的效果
![图片[11]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219033924509-1024x436.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后我们在设置一下触发周期,可以每天自动执行一次
![图片[12]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219034034325.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
都设置好,点击完成
![图片[13]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219034102514-1024x635.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后函数就正常运行了
![图片[14]-B站每日签到/看视频/投币/分享视频 自动获取经验脚本 支持云函数-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/02/20220219034130250-1024x394.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
我们可以每天查看对应的记录
© 版权声明
THE END
- 最新
- 最热
只看作者