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/1029liteVersion=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站直播弹幕软件 相关文章
编译器实现之旅——第四章 实现词法分析器
在上一章的旅程中,我们讨论了词法分析器的实现思路,我们也为词法分析器的实现做了许多准备工作。现在,就让我们来实现词法分析器吧。 1. 词法分析器的类定义 词法分析器的类定义如下: class Lexer{public: // Constructor explicit Lexer(const string in
编译器实现之旅——第三章 实现词法分析器前的准备
在这一章的旅程中,我们将要为整个编译器的“前端中的前端”:词法分析器的实现做好充足的准备。 1. 词法分析器概观 纵观编译器的输入:源代码,我们不难发现,源代码说白了也就是一个很长很长的字符串。而说到字符串,我们不难想到字符串的分割函数。这类分
编译器实现之旅——第二章 编译器前端概观
在这一章的旅程中,我们将要深入编译器前端一探究竟。看看编译器前端到底由哪些组件组成,其分别又是在做什么。 1. 编译器前端的结构组成 似乎比我们想象的要简单,编译器前端仅由两个组件组成,词法分析器与语法分析器。请看下图: +----------+ +---------
python-滑动窗口
学习文章:https://www.cnblogs.com/huansky/p/13488234.html 一、概念 整体移动一个窗口,在窗口中进行操作 二、思路 1、使用双指针,初始化left=right=0,把索引闭区间[left,right]成为一个窗口 2、不断增加right指针扩大窗口[left,right],直到窗口中的字
编译器实现之旅——第七章 编译器后端概观
在前面的旅程中,我们已经实现了整个的编译器前端。我们也知道,前端的目标是将源代码转变为抽象语法树,以供后端使用。从这一章开始,我们就要前往后端世界一探究竟了,现在,就让我们来看看编译器后端到底由哪些组件组成,其分别又是在做什么吧。 1. 编译
力扣482. 密钥字符串 S python--每天一题
有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号)。其中, N 个 '-' 将字符串分成了 N+1 组。 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符。特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个
编译器实现之旅——第九章 实现虚拟机
在这一章的旅程中,我们来实现虚拟机。CMM的虚拟机具有一套极为简单的指令集,和一个能够运行这套指令集的虚拟机。 需要注意的是:本章将不会对指令集以及虚拟机的设计和行为做过多的解释,而只是着重于展示。这是因为:在没有讲解代码生成器之前,这些解释
编译器实现之旅——第十章 实现代码生成器前的准备
从这一章开始,我们将进入代码生成器的世界。代码生成器是整个编译器中最复杂,但也最为精彩的部分。话不多说,就让我们开始吧。 1. 代码生成器概观 顾名思义,代码生成器就是用来生成代码的编译器组件。这里的“代码”一词,指的是我们已经实现了的CMM指令
编译器实现之旅——第八章 实现语义分析器
作为编译器后端的第一站,我们首先来实现语义分析器。 1. 语义分析器概观 正如上一章所说,语义分析器主要用于对抽象语法树进行语义层面的进一步检查,并生成符号表。我们也为符号表给出了一个“记录任何你想额外记录下的东西的表”这样的说了等于没说的定义
编译器实现之旅——第十三章 if语句和while语句的代码生成器分派函数的实现
在上一章的旅程中,我们已经实现了表达式类代码生成器分派函数,而在这一章的旅程中,我们将要实现if语句和while语句的代码生成器分派函数。if语句和while语句是两种典型的带有跳转指令的语句。观察CMM指令集的实现不难发现,跳转指令,实际上就是通过强行修