python實(shí)現(xiàn)b站直播自動(dòng)發(fā)送彈幕功能
基本開發(fā)環(huán)境
· Python 3.6
· Pycharm
相關(guān)模塊使用
import requests import time from tkinter import * import random
目標(biāo)i網(wǎng)頁分析

首先你要登陸B(tài)站賬號(hào),然后隨便點(diǎn)擊一個(gè)直播間,這里建議先選擇人氣少的,彈幕少的,這樣方便查看效果

如上圖所示,先打開開發(fā)者工具,定位到xhr輸入發(fā)送內(nèi)容,點(diǎn)擊發(fā)送,會(huì)有一個(gè)post請(qǐng)求的send數(shù)據(jù)接口。
所以只需要請(qǐng)求這個(gè)數(shù)據(jù)接口即可發(fā)送彈幕。就是正常的時(shí)候爬取數(shù)據(jù),使用requests請(qǐng)求網(wǎng)頁一樣,一般情況大家都是使用的get請(qǐng)求,這里則是需要使用post請(qǐng)求。
之后,只要給請(qǐng)求的時(shí)候來一個(gè)死循環(huán),那么就可以一直發(fā)送彈幕了,然后再自定義一個(gè)彈幕內(nèi)容,讓它每次都是隨機(jī)抽選一句話發(fā)送即可。
完整代碼:
import requests
import time
from tkinter import *
import random
lis_text = ['666', '主播真厲害',
'愛了,愛了',
'關(guān)注走一走,活到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': '復(fù)制自己的',
'csrf': '復(fù)制自己的',
}
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, '第{}條彈幕發(fā)送成功'.format(a))
# 文本框滾動(dòng)
text.see(END)
# 更新
text.update()
text.insert(END, '發(fā)送內(nèi)容:{}'.format(send_meg))
root = Tk()
root.title('B站自動(dòng)發(fā)送彈幕')
root.geometry('560x450+400+200')
label = Label(root, text='請(qǐng)輸入房間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='開始發(fā)送', 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實(shí)現(xiàn)b站直播自動(dòng)發(fā)送彈幕的詳細(xì)內(nèi)容,更多關(guān)于python 自動(dòng)發(fā)送彈幕的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)靜態(tài)服務(wù)器
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)靜態(tài)服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法,涉及Python針對(duì)列表的簡單遍歷、計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Python使用稀疏矩陣節(jié)省內(nèi)存實(shí)例
這篇文章主要介紹了Python使用稀疏矩陣節(jié)省內(nèi)存實(shí)例,矩陣中非零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于矩陣元素的總數(shù),并且非零元素的分布沒有規(guī)律,則稱該矩陣為稀疏矩陣,需要的朋友可以參考下2014-06-06
詳解python 拆包可迭代數(shù)據(jù)如tuple, list
拆包是指將一個(gè)結(jié)構(gòu)中的數(shù)據(jù)拆分為多個(gè)單獨(dú)變量中。下面通過本文給大家介紹python 拆包可迭代數(shù)據(jù)如tuple, list的相關(guān)資料,需要的朋友參考下吧2017-12-12
使用Python pyglet庫編寫一個(gè)可播放音樂的揚(yáng)聲器類流程詳解
這篇文章主要介紹了使用Python pyglet庫編寫一個(gè)可播放音樂的揚(yáng)聲器類,Pyglet主要用于創(chuàng)建視頻游戲、獨(dú)立游戲和多媒體應(yīng)用,它提供了一組用于制作游戲的常用功能,包括圖形渲染、聲音播放、事件處理等等,需要的朋友可以參考下2024-03-03
Python使用Scrapy爬蟲框架全站爬取圖片并保存本地的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python使用Scrapy爬蟲框架全站爬取圖片并保存本地的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-03-03
GitHub 熱門:Python 算法大全,Star 超過 2 萬
4 月 27 日,GitHub 趨勢榜第 3 位是一個(gè)用 Python 編碼實(shí)現(xiàn)的算法庫,Star 數(shù)早已達(dá)到 26000+2019-04-04
Python實(shí)現(xiàn) 多進(jìn)程導(dǎo)入CSV數(shù)據(jù)到 MySQL
本文給大家分享的是使用python實(shí)現(xiàn)多進(jìn)程導(dǎo)入CSV文件數(shù)據(jù)到MySQL的思路方法以及具體的代碼分享,有相同需求的小伙伴可以參考下2017-02-02
import?paddle報(bào)錯(cuò)的成功解決方法
最近安裝paddle的時(shí)候遇到了些問題,這里給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于import?paddle報(bào)錯(cuò)的成功解決方法,需要的朋友可以參考下2023-06-06
使用Numpy對(duì)特征中的異常值進(jìn)行替換及條件替換方式
這篇文章主要介紹了使用Numpy對(duì)特征中的異常值進(jìn)行替換及條件替換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06

