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請求的send數(shù)據(jù)接口。
所以只需要請求這個(gè)數(shù)據(jù)接口即可發(fā)送彈幕。就是正常的時(shí)候爬取數(shù)據(jù),使用requests請求網(wǎng)頁一樣,一般情況大家都是使用的get請求,這里則是需要使用post請求。
之后,只要給請求的時(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='請輸入房間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ā)送彈幕的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Python監(jiān)控文件內(nèi)容變化代碼實(shí)例
在python中文件監(jiān)控主要有兩個(gè)庫,一個(gè)是pyinotify,一個(gè)是watchdog。pyinotify依賴于Linux平臺(tái)的inotify,今天我們就來探討下pyinotify.2018-06-06Python實(shí)現(xiàn)將DNA序列存儲(chǔ)為tfr文件并讀取流程介紹
為什么要在實(shí)驗(yàn)過程中存儲(chǔ)文件,因?yàn)橛行┧惴ǖ膬?nèi)容存在一些重復(fù)計(jì)算的步驟,這些步驟往往消耗很大一部分時(shí)間,在有大量參數(shù)的情況時(shí),需要在多次不同參數(shù)的情況下重復(fù)試驗(yàn),因此可以考慮將一些不涉及參數(shù)運(yùn)算的部分結(jié)果存入文件中2022-09-09python之線程池map()方法傳遞多參數(shù)list
這篇文章主要介紹了python之線程池map()方法傳遞多參數(shù)list問題,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過問題
這篇文章主要介紹了Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Python3.5 Json與pickle實(shí)現(xiàn)數(shù)據(jù)序列化與反序列化操作示例
這篇文章主要介紹了Python3.5 Json與pickle實(shí)現(xiàn)數(shù)據(jù)序列化與反序列化操作,結(jié)合實(shí)例形式分析了Python3.5使用Json與pickle模塊實(shí)現(xiàn)json格式數(shù)據(jù)的序列化及反序列化操作相關(guān)步驟與注意事項(xiàng),需要的朋友可以參考下2019-04-04pytorch/transformers?最后一層不加激活函數(shù)的原因分析
這里給大家解釋一下為什么bert模型最后都不加激活函數(shù),是因?yàn)閾p失函數(shù)選擇的原因,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-01-01