python实现b站直播自动发送弹幕功能

时间:2021-12-11 02:48:16

基本开发环境

· Python 3.6

· Pycharm

相关模块使用

  1. import requests
  2. import time
  3. from tkinter import *
  4. import random

目标i网页分析

python实现b站直播自动发送弹幕功能

首先你要登陆B站账号,然后随便点击一个直播间,这里建议先选择人气少的,弹幕少的,这样方便查看效果

python实现b站直播自动发送弹幕功能

如上图所示,先打开开发者工具,定位到xhr输入发送内容,点击发送,会有一个post请求的send数据接口。

所以只需要请求这个数据接口即可发送弹幕。就是正常的时候爬取数据,使用requests请求网页一样,一般情况大家都是使用的get请求,这里则是需要使用post请求。

之后,只要给请求的时候来一个死循环,那么就可以一直发送弹幕了,然后再自定义一个弹幕内容,让它每次都是随机抽选一句话发送即可。

完整代码:

  1. import requests
  2. import time
  3. from tkinter import *
  4. import random
  5.  
  6. lis_text = ['666', '主播真厉害',
  7. '爱了,爱了',
  8. '关注走一走,活到99',
  9. '牛逼!!!',
  10. '秀儿,是你吗?']
  11.  
  12. def send():
  13. a = 0
  14. while True:
  15. time.sleep(2)
  16. send_meg = random.choice(lis_text)
  17. roomid = entry.get()
  18. ti = int(time.time())
  19. url = 'https://api.live.bilibili.com/msg/send'
  20. data = {
  21. 'color': '16777215',
  22. 'fontsize': '25',
  23. 'mode': '1',
  24. 'msg': send_meg,
  25. 'rnd': '{}'.format(ti),
  26. 'roomid': '{}'.format(roomid),
  27. 'bubble': '0',
  28. 'csrf_token': '复制自己的',
  29. 'csrf': '复制自己的',
  30. }
  31.  
  32. headers = {
  33. 'cookie': '使用你自己的cookie',
  34. 'origin': 'https://live.bilibili.com',
  35. 'referer': 'https://live.bilibili.com/blanc/1029?liteVersion=true',
  36. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
  37. }
  38. a += 1
  39. response = requests.post(url=url, data=data, headers=headers)
  40. print(response)
  41. text.insert(END, '第{}条弹幕发送成功'.format(a))
  42. # 文本框滚动
  43. text.see(END)
  44. # 更新
  45. text.update()
  46. text.insert(END, '发送内容:{}'.format(send_meg))
  47.  
  48. root = Tk()
  49. root.title('B站自动发送弹幕')
  50. root.geometry('560x450+400+200')
  51.  
  52. label = Label(root, text='请输入房间ID:', font=('华文行楷', 20))
  53. label.grid()
  54.  
  55. entry = Entry(root, font=('隶书', 20))
  56. entry.grid(row=0, column=1)
  57.  
  58. text = Listbox(root, font=('隶书', 16), width=50, heigh=15)
  59. text.grid(row=2, columnspan=2)
  60.  
  61. button1 = Button(root, text='开始发送', font=('隶书', 15), command=send)
  62. button1.grid(row=3, column=0)
  63.  
  64. button2 = Button(root, text='退出程序', font=('隶书', 15), command=root.quit)
  65. button2.grid(row=3, column=1)
  66.  
  67. root.mainloop()

以上就是python实现b站直播自动发送弹幕的详细内容,更多关于python 自动发送弹幕的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/Martinaoh/p/14416748.html