每日小技巧,用python给喜欢的主播自动发弹幕

x33g5p2x  于2021-12-26 转载在 Python  
字(3.3k)|赞(0)|评价(0)|浏览(424)

写在前面

发弹幕只是其中一个小小的功能,还可以自动点赞、收藏、投币、自动播放、私信等等,但是我们只演示这个,其它的不做展示。

实现步骤

先打开一个视频或者直播,F12打开开发者工具,点击network。

然后点这个清空一下

再发送一个弹幕,然后可以看到这个send,有一个post请求。

点击payload可以看到我们刚刚发送的弹幕相关数据


然后来写代码

首先导入模块

  1. import random
  2. import time

这是我们的url

  1. url = 'https://api.live.bi******.com/msg/send'
  2. # 某些原因我就不打全了

接收一下data参数

  1. data = {
  2. 'bubble': '0',
  3. 'msg': 6666,
  4. 'color': '16777215',
  5. 'mode': '1',
  6. 'fontsize': '25',
  7. 'rnd': '1640181316',
  8. 'roomid': '22819508',
  9. 'csrf': '131d24bf2b92a3609208ed83758ab8f2',
  10. 'csrf_token': '131d24bf2b92a3609208ed83758ab8f2',
  11. }

然后headers请求头这里,把cookie什么的都给它加上去。

  1. headers = {
  2. 'cookie': '_uuid=CF79473B-0F83-6087-BCB0-23A7E36C479296281infoc; buvid3=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; blackside_state=1; rpdid=|(kmJY|kmu|)0J\'uYJRYkJu|Y; CURRENT_QUALITY=32; buvid_fp=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; video_page_version=v_old_home; sid=abkn3and; i-wanna-go-back=-1; b_ut=5; bp_video_offset_65901796=602085772740229500; LIVE_BUVID=AUTO5916400017585242; CURRENT_BLACKGAP=1; CURRENT_FNVAL=2000; b_lsid=FB21108D7_17DE26BCC89; fingerprint=3c7949ca118951ae1be0b5b37b321306; buvid_fp_plain=556F173C-C5B7-4583-86F9-FD1074EB421D143076infoc; DedeUserID=523606542; DedeUserID__ckMd5=909861ec223d26d8; SESSDATA=cec4dda4%2C1655733287%2Cc5b88*c1; bili_jct=131d24bf2b92a3609208ed83758ab8f2; innersign=0; _dfcaptcha=fbb016616944e9b94331aeb2627c9d3d; PVID=3',
  3. 'origin': 'https://live.bi****.com',
  4. 'referer': 'https://live.bi****.com/',
  5. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
  6. }

接收数据

  1. response = requests.post(url=url, data=data, headers=headers)

输出

  1. print(response.text)

这是最最最简单的版本,就四行代码就可以了。


找了个没人看的视频运行一下,发了个你好。


那如果要发多一点呢?
给它一个列表

  1. lis = ['主播666', '主播真帅', '666']

导入的random模块就是为了随机取一个弹幕

  1. word = random.choice(lis)

然后我们在写一个死循环

  1. while True:
  2. lis = ['主播666', '主播真帅', '666']
  3. word = random.choice(lis)

导入的time是一个延时函数,我们在每次发完之后,我们延迟五秒钟,放到最后面。

  1. time.sleep(5)

再来看看效果

全部代码

  1. import random
  2. import time
  3. while True:
  4. lis = ['主播666', '主播真帅', '666']
  5. word = random.choice(lis)
  6. url = 'https://api.live.bi****.com/msg/send'
  7. data = {
  8. 'bubble': '0',
  9. 'msg': word,
  10. 'color': '16777215',
  11. 'mode': '1',
  12. 'fontsize': '25',
  13. 'rnd': '1640181316',
  14. 'roomid': '22819508',
  15. 'csrf': '131d24bf2b92a3609208ed83758ab8f2',
  16. 'csrf_token': '131d24bf2b92a3609208ed83758ab8f2',
  17. }
  18. headers = {
  19. 'cookie': '_uuid=CF79473B-0F83-6087-BCB0-23A7E36C479296281infoc; buvid3=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; blackside_state=1; rpdid=|(kmJY|kmu|)0J\'uYJRYkJu|Y; CURRENT_QUALITY=32; buvid_fp=8AEBDC64-0CEE-4F6F-9866-B1508FAB2871148805infoc; video_page_version=v_old_home; sid=abkn3and; i-wanna-go-back=-1; b_ut=5; bp_video_offset_65901796=602085772740229500; LIVE_BUVID=AUTO5916400017585242; CURRENT_BLACKGAP=1; CURRENT_FNVAL=2000; b_lsid=FB21108D7_17DE26BCC89; fingerprint=3c7949ca118951ae1be0b5b37b321306; buvid_fp_plain=556F173C-C5B7-4583-86F9-FD1074EB421D143076infoc; DedeUserID=523606542; DedeUserID__ckMd5=909861ec223d26d8; SESSDATA=cec4dda4%2C1655733287%2Cc5b88*c1; bili_jct=131d24bf2b92a3609208ed83758ab8f2; innersign=0; _dfcaptcha=fbb016616944e9b94331aeb2627c9d3d; PVID=3',
  20. 'origin': 'https://live.bi****.com',
  21. 'referer': 'https://live.bi****.com/',
  22. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
  23. }
  24. response = requests.post(url=url, data=data, headers=headers)
  25. print(response.text)
  26. time.sleep(5)

兄弟们,支持一下来个三连,需要你们提一点动力~

关注我获取更多精彩内容!(免费资源在我左侧自取哈)

相关文章