每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!
anmu 是一个开源的直播平台弹幕接口,使用他没什么基础的你也可以轻松的操作各平台弹幕。使用不到三十行代码,你就可以使用Python基于弹幕进一步开发。支持斗鱼、熊猫、战旗、全民、Bilibili多平台弹幕。支持各版本Python,无平台依赖,方便各类开发者、爱好者使用。一次开启,主播上线自动连接,下线后上线自动重连。
给喜欢的主播来个爱的轰炸。
经过深度优化,几乎不漏过任何一条弹幕;使用抽象构架,方便修改与开发。
欢迎加入柯西学python群:725479218,欢迎大家加入!!!!!
Documents
你可以在官网获取使用帮助。
Installation
可以通过本命令安装 danmu:
pip install danmu
Simple uses
通过如下代码,可以初步通过Python对弹幕进行处理。
import time, sysfrom danmu
import DanMuClientdef
pp(msg):
print(msg.encode(sys.stdin.encoding, 'ignore'). decode(sys.stdin.encoding))
dmc = DanMuClient('http://www.douyu.com/lslalala')
if not dmc.isValid():
print('Url not valid')
@dmc.danmudef danmu_fn(msg):
pp('[%s] %s' % (msg['NickName'], msg['Content']))
@dmc.giftdef gift_fn(msg):
pp('[%s] sent a gift!' % msg['NickName'])
@dmc.otherdef other_fn(msg):
pp('Other message received')
dmc.start(blockThread = True)
Screenshot

Advanced uses
设置默认的消息处理方式
消息被分为三种类型注册:danmu, gift, other
分别对应:普通弹幕,礼物消息,其他消息
如果某种类型没有注册过,将会使用默认方法,默认方法的注册方式如下:
from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')
@dmc.defaultdef default_fn(msg):
pp('[%s] %s' % (msg['NickName'], msg['Content']))
取消已经注册过的方法
通过以下方式可以取消某一种类型的注册。
from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')
dmc.default(None)dmc.gift(None)
FAQ
Q: 获取的消息格式都是什么?
A: 消息为一个字典,必有三个键:NickName、Content、MsgType,对应用户名、消息内容、消息类型。
每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!的更多相关文章
- 自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!
大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来研究一下虎牙平台的爬虫. 起因 写完上次的代码,我冒出有一个很有趣的想法,就是,我们可以使用selenium来完成虎牙自 ...
- 90后外挂开发者:已经有许多主播在我这里在外挂,我月入50W
绝地求生上线不到一年已经火爆全球,玩家们表示再差的优化也抵挡不住我们玩游戏的热情,近日,各大平台主播糯米油条五五开等人的开挂实锤闹得沸沸扬扬,玩家之间刮起了一阵反击外挂的风暴. 俗话说得好,没有买卖就 ...
- 鹅厂优文|主播pk,如何实现无缝切换?
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文作者,rexchang(常青),腾讯视频云终端技术总监,2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ.手 ...
- 荣耀TCL都玩智慧屏“噱头”,海信却引行业未来方向
编辑 | 于斌 出品 | 于见(mpyujian) 如今手机联接我们生活方方面面的同时,大家却也由此习惯了低头示人.据美国的一家数据研究中心显示,目前中国智能手机普及率已达到68%,居民日均手机屏幕使 ...
- 求求你们了,别再写满屏的 if/ else 了!
为什么我们写的代码都是 if-else? 程序员想必都经历过这样的场景:刚开始自己写的代码很简洁,逻辑清晰,函数精简,没有一个 if-else,可随着代码逻辑不断完善和业务的瞬息万变:比如需要对入参进 ...
- 记录一下自己爬虎牙LOL主播的爬虫思路
1.明确爬虫目的 爬虫目的需要我们明确的,没有目的的爬虫都是耍流氓!像我这次爬虫目的能不能从网页上爬下来. 2.怎么来爬? a. 先要找到具有唯一性的标签 <li class="gam ...
- 利用snowfall.jquery.js实现爱心满屏飞
小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...
- css背景图片拉伸 以及100% 满屏显示
如何用css背景图片拉伸 以及100% 满屏显示呢?这个问题听起来似乎很简单.但是很遗憾的告诉大家.不是我们想的那么简单. 比如一个容器(body,div,span)中设定一个背景.这个背景的长宽值在 ...
- 虎牙数万主播同时在线直播的秘密,CDN推流日志上行实时监控
6 月 10 日,又拍云 Open Talk | 2018 音视频技术沙龙·深圳站 顺利落幕,来自虎牙的直播运维研发架构师张波在沙龙上做了<基于CDN推流日志的主播上行实时监控及其自动化解密&g ...
随机推荐
- 七牛云java(服务端)通用工具类
前言 需要安装lombok插件. 功能列表 上传本地文件 上传Base64图片 获取文件访问地址 上传MultipartFile 代码 pom.xml <dependency> <g ...
- 解决element-ui的el-select组件文字超过宽度时不出现横向滚动条问题
我用的element-ui是V1.4.3. 目前遇到一个问题,在用el-select组件的时候,当选项的内容很长的时候,会撑开下拉菜单的宽度,这样影响美观.具体如下图所示: 解决这个问题的思路:设置下 ...
- JavaScript大杂烩4 - 理解JavaScript对象的继承机制
JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的 ...
- [20180627]truncate table的另类恢复.txt
[20180627]truncate table的另类恢复.txt --//前几天看链接http://www.xifenfei.com/2018/06/truncate-table-recovery. ...
- Linux (Fedora 28) 如何查看 CPU 温度
机器突然负载有点高,查看CPU 温度的方法: 1.yum install lm_sensors; 2.sensors-detect 3.sensors 这些需要机器具备相应的设备,如果在虚拟机运行 ...
- 4.2Python数据类型(2)之布尔类型
返回总目录 目录: 1.布尔类型的概念和分类: 2.布尔类型的本质 3.布尔类型的应用 (一)布尔类型的概念和分类: (1)概念: 布尔类型(bool)就是用于判断真假的数据类型 (2)分类: Pyt ...
- Linux 小知识翻译 - 「文件系统的种类」
现在的Linux,主流的文件系统是 「ext3」.但是,文件系统除此之外,还有「ReiserFS」「XFS」「ZFS」等等. 此外,Windows的主流文件系统是「NTFS」,CD-ROM的主流文件系 ...
- Python3编写网络爬虫12-数据存储方式五-非关系型数据库存储
非关系型数据库存储 NoSQL 全称 Not Only SQL 意为非SQL 泛指非关系型数据库.基于键值对 不需要经过SQL层解析 数据之间没有耦合性 性能非常高. 非关系型数据库可细分如下: 键值 ...
- activiti获取可回退的节点
在处理流程回退时,需要获取某个节点当前可以回退到的节点,简单分析下: 1. 只支持回退到userTask. 2. 如果流程流转过某节点时生成了多个任务,从其中某一个任务回退到该节点后,不处理另外的任务 ...
- 用JQuery操作元素的style属性
可以直接利用css()方法获取元素的样式属性,JQuery代码如下: 1 $("p").css("color"); //获取p元素的样式颜色 无论color属 ...