python實現b站直播自動發送彈幕功能

基本開發環境

· Python 3.6

· Pycharm

相關模塊使用

import requests
import time
from tkinter import *
import random

目標i網頁分析

首先你要登陸B站賬號,然後隨便點擊一個直播間,這裡建議先選擇人氣少的,彈幕少的,這樣方便查看效果

如上圖所示,先打開開發者工具,定位到xhr輸入發送內容,點擊發送,會有一個post請求的send數據接口。

所以隻需要請求這個數據接口即可發送彈幕。就是正常的時候爬取數據,使用requests請求網頁一樣,一般情況大傢都是使用的get請求,這裡則是需要使用post請求。

之後,隻要給請求的時候來一個死循環,那麼就可以一直發送彈幕瞭,然後再自定義一個彈幕內容,讓它每次都是隨機抽選一句話發送即可。

完整代碼:

import requests
import time
from tkinter import *
import random

lis_text = ['666', '主播真厲害',
   '愛瞭,愛瞭',
   '關註走一走,活到99',
   '牛逼!!!',
   '秀兒,是你嗎?']


def send():
 a = 0
 while True:
  time.sleep(2)
  send_meg = random.choice(lis_text)
  roomid = entry.get()
  ti = int(time.time())
  url = 'https://api.live.bilibili.com/msg/send'
  data = {
   'color': '16777215',
   'fontsize': '25',
   'mode': '1',
   'msg': send_meg,
   'rnd': '{}'.format(ti),
   'roomid': '{}'.format(roomid),
   'bubble': '0',
   'csrf_token': '復制自己的',
   'csrf': '復制自己的',
  }

  headers = {
   'cookie': '使用你自己的cookie',
   'origin': 'https://live.bilibili.com',
   'referer': 'https://live.bilibili.com/blanc/1029?liteVersion=true',
   'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
  }
  a += 1
  response = requests.post(url=url, data=data, headers=headers)
  print(response)
  text.insert(END, '第{}條彈幕發送成功'.format(a))
  # 文本框滾動
  text.see(END)
  # 更新
  text.update()
  text.insert(END, '發送內容:{}'.format(send_meg))


root = Tk()
root.title('B站自動發送彈幕')
root.geometry('560x450+400+200')

label = Label(root, text='請輸入房間ID:', font=('華文行楷', 20))
label.grid()

entry = Entry(root, font=('隸書', 20))
entry.grid(row=0, column=1)

text = Listbox(root, font=('隸書', 16), width=50, heigh=15)
text.grid(row=2, columnspan=2)

button1 = Button(root, text='開始發送', font=('隸書', 15), command=send)
button1.grid(row=3, column=0)

button2 = Button(root, text='退出程序', font=('隸書', 15), command=root.quit)
button2.grid(row=3, column=1)

root.mainloop()

以上就是python實現b站直播自動發送彈幕的詳細內容,更多關於python 自動發送彈幕的資料請關註WalkonNet其它相關文章!