基於Python實現給喜歡的主播自動發彈幕

前言

發彈幕隻是其中一個小小的功能,還可以自動點贊、收藏、投幣、自動播放、私信等等,但是我們隻演示這個,其它的不做展示。

實現步驟

先打開一個視頻或者直播,F12打開開發者工具,點擊network。

然後點這個清空一下

再發送一個彈幕,然後可以看到這個send,有一個post請求。

點擊payload可以看到我們剛剛發送的彈幕相關數據

然後來寫代碼

首先導入模塊

import random
import time

這是我們的url

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

接收一下data參數

data = {
    'bubble': '0',
    'msg': 6666,
    'color': '16777215',
    'mode': '1',
    'fontsize': '25',
    'rnd': '1640181316',
    'roomid': '22819508',
    'csrf': '131d24bf2b92a3609208ed83758ab8f2',
    'csrf_token': '131d24bf2b92a3609208ed83758ab8f2',
}

然後headers請求頭這裡,把cookie什麼的都給它加上去。

    headers = {
    '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',
    'origin': 'https://live.bi****.com',
    'referer': 'https://live.bi****.com/',
    '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',
    }

接收數據

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

輸出

print(response.text)

這是最最最簡單的版本,就四行代碼就可以瞭。

找瞭個沒人看的視頻運行一下,發瞭個你好。

那如果要發多一點呢?

給它一個列表

lis = ['主播666', '主播真帥', '666']

導入的random模塊就是為瞭隨機取一個彈幕

word = random.choice(lis)

然後我們在寫一個死循環

while True:
    lis = ['主播666', '主播真帥', '666']
    word = random.choice(lis)

導入的time是一個延時函數,我們在每次發完之後,我們延遲五秒鐘,放到最後面。

time.sleep(5)

再來看看效果

全部代碼

import random
import time
while True:
    lis = ['主播666', '主播真帥', '666']
    word = random.choice(lis)
    url = 'https://api.live.bi****.com/msg/send'
    data = {
        'bubble': '0',
        'msg': word,
        'color': '16777215',
        'mode': '1',
        'fontsize': '25',
        'rnd': '1640181316',
        'roomid': '22819508',
        'csrf': '131d24bf2b92a3609208ed83758ab8f2',
        'csrf_token': '131d24bf2b92a3609208ed83758ab8f2',
    }
    headers = {
    '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',
    'origin': 'https://live.bi****.com',
    'referer': 'https://live.bi****.com/',
    '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',
    }
    response = requests.post(url=url, data=data, headers=headers)
    print(response.text)
    time.sleep(5) 

到此這篇關於基於Python實現給喜歡的主播自動發彈幕的文章就介紹到這瞭,更多相關Python自動發彈幕內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: