B站刷弹幕 | 您所在的位置:网站首页 › b站自己刷弹幕 › B站刷弹幕 |
耍耍b站弹幕
先说说b站弹幕原理: 即post请求 你发一个弹幕,根据你当前的cookies和headers,加上data内容,对b站的接口 ‘https://api.bilibili.com/x/v2/dm/post’ 发送一个post请求。 会不会封号?理论上不会,就是用py代替你发几个post请求。只要注意加上随机等待时间、随机发送时间,假装自己是“人”,一般没事,但不保证。 前提条件: requests pip install requests推荐Anaconda,如果没有,则看看 不安装Anaconda下载python库 1、打开一个视频,摁下F12(或者右键,检测),选中网络/Network 此时记得先暂停视频播放,要不跳得飞快 最终代码: import requests, time, random import configparser # 配置文件信息 target = configparser.ConfigParser() # 文件对象 # 保存一个txt.ini文件,内容格式为: # [弹幕] # 1=我是弹幕1 # 2=我是弹幕2 # 3=记得没有引号,就是这样 target.read(r'G:\Unity\code_project\other_project\text.ini', encoding='utf-8') # 读取文件 i = 0 # 自行填写cookies和headers cookies = {} headers = {} while True: # 其中oid、bvid、rnd、max_time每换一个视频就要重新设置一次 oid = '555858040' bvid = 'BV1wT4y1S751' rnd = '1649727277711366' # 视频总时间, 格式 : xx分xx秒 如: 1.30, 1.02 2.10 max_time = 4.53 pool = '0' plat = '1' checkbox_type = '0' csrf = 'aa1c8518f4c446794038ab9e1e73c9b4' # 最大时间, 等于max_time转换成毫秒,防止process超出最大时间 sec_1 = int(max_time) * 60 sec_2 = int((max_time - int(max_time)) * 100) max_time_ms = (sec_1 + sec_2 - 3) * 1000 # 减去3秒,为什么?防止到最大时间 # 选取随机弹幕,text.ini里面有多少条,就 randint(1, 多少) message = target.get('弹幕', str(random.randint(1, 12))) # mode:1正常弹幕 4底部弹幕 5:顶部弹幕, 随机设定1,4或者5 # color:16777215-白色 16740868-橙色 16776960-黄色 16646914-红色 process = random.randint(500, max_time_ms) # 随机弹幕时间 colors = [16777215, 16777215, 16740868, 16776960] color = colors[random.randint(0, 3)] # 随机颜色 白色(16777215)概率高一些 modes = [1, 4, 5, 1] # 正常类型的弹幕 mode = modes[random.randint(0, 3)] # 随机弹幕类型 (1)的概率高一些 # 随机弹幕间隔,一直发送会歇火,设置随机休息15到30秒 sleep_time = random.randint(15, 30) # print(f'time:{process}ms') data = { 'type': '1', 'oid': oid, 'msg': message, 'bvid': bvid, 'progress': process, 'color': color, 'fontsize': '25', 'pool': pool, 'mode': mode, 'rnd': rnd, 'plat': plat, 'checkbox_type': checkbox_type, 'csrf': csrf } # 最后这个链接来源看下图 response = requests.post('https://api.bilibili.com/x/v2/dm/post', cookies=cookies, headers=headers, data=data) i = i + 1 print(f"第{i}次, 第{process}ms, 颜色:{color}, 类型:{mode}, 下次间隔:{sleep_time}s") time.sleep(sleep_time)
参考: python实现B站自动刷弹幕[EB/OL]//知乎专栏. [2022-05-01]. https://zhuanlan.zhihu.com/p/133809380. 流量的世界。。 |
CopyRight 2018-2019 实验室设备网 版权所有 |