每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!




每个大主播都是满屏弹幕,怎么做到的?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)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Screenshot

Advanced uses

设置默认的消息处理方式

消息被分为三种类型注册:danmu, gift, other

分别对应:普通弹幕,礼物消息,其他消息

如果某种类型没有注册过,将会使用默认方法,默认方法的注册方式如下:

from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')
@dmc.defaultdef default_fn(msg):
   pp('[%s] %s' % (msg['NickName'], msg['Content']))
 
 
  • 1
  • 2
  • 3

取消已经注册过的方法

通过以下方式可以取消某一种类型的注册。

from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')
dmc.default(None)dmc.gift(None)
 
 
  • 1
  • 2

FAQ

Q: 获取的消息格式都是什么?

A: 消息为一个字典,必有三个键:NickName、Content、MsgType,对应用户名、消息内容、消息类型。

(".MathJax").remove();








    MathJax.Hub.Config({
            "HTML-CSS": {
                    linebreaks: { automatic: true, width: "94%container" },
                    imageFont: null
            },
            tex2jax: {
                preview: "none"
            },
            mml2jax: {
                preview: 'none'
            }
    });




    (function(){
        var btnReadmore =
(".MathJax").remove();    MathJax.Hub.Config({            "HTML-CSS": {                    linebreaks: { automatic: true, width: "94%container" },                    imageFont: null            },            tex2jax: {                preview: "none"            },            mml2jax: {                preview: 'none'            }    });    (function(){        var btnReadmore =
("#btn-readmore"); if(btnReadmore.length>0){ var winH = (window).height();vararticleBox= ( w i n d o w ) . h e i g h t ( ) ; v a r a r t i c l e B o x = ("div.article_content"); var artH = articleBox.height(); if(artH > winH*2){ articleBox.css({ 'height':winH*2+'px', 'overflow':'hidden' }) btnReadmore.click(function(){ articleBox.removeAttr("style"); $(this).parent().remove(); }) }else{ btnReadmore.parent().remove(); } } })()
scrolling="no" allowfullscreen="true" width="100%" height="162px" src="https://edu.csdn.net/sp/blog.php?type=web1">
var edu_ad_is_big_data = 0; var edu_ad_id_mapping = {"0":["https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1"],"1":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=web1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"8":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"2":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1"],"3":["https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"6":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"12":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"14":["https:\/\/edu.csdn.net\/sp\/blog.php?type=web1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcweb"],"15":["https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcjg"],"16":["https:\/\/edu.csdn.net\/sp\/blog.php?type=web1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1"],"28":["https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcai"],"29":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1"],"30":["https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1"],"32":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcaq"],"33":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gccxrs"],"35":["https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"37":["https:\/\/edu.csdn.net\/sp\/blog.php?type=web1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1"],"7":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=web1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"17":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1"],"34":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcbt"],"36":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=ai1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"31":["https:\/\/edu.csdn.net\/sp\/blog.php?type=python1","https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"19":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"],"20":["https:\/\/edu.csdn.net\/sp\/blog.php?type=bigdata1","https:\/\/edu.csdn.net\/sp\/blog.php?type=gcit"]};
还能输入1000个字符
python3+selenium实现自动进熊猫直播间发弹幕的脚本

学完python+selenium后突然觉得进入主播的直播间刷一波弹幕是个不错的想法(虽然这样的做法不是很好,但是完全可以证明自己的技术) 这里进入熊猫直播间的秋日房间(你们被封号了我不管) …

    <div class="info-box d-flex align-content-center">
        <p>
            <a class="avatar" src="https://blog.csdn.net/fengzhizi76506" title="fengzhizi76506" target="_blank">
                <img src="https://avatar.csdn.net/D/8/0/3_fengzhizi76506.jpg" alt="fengzhizi76506" class="avatar-pic">
                <span class="name">fengzhizi76506</span>
            </a>
        </p>
        <p>
            <span class="date">2017-04-15 20:01:37</span>
        </p>
        <p>
            <span class="read-num">阅读数:2182</span>
        </p>
    </div>
</div>
                <div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
    <h4 class="text-truncate">
        <a href="https://blog.csdn.net/Sun1956/article/details/51586279" target="_blank" strategy="BlogCommendFromQuerySearch_1">
            <em>Python</em>抓取熊猫TV<em>弹幕</em>            </a>
    </h4>
    <p class="content">
        <a href="https://blog.csdn.net/Sun1956/article/details/51586279" target="_blank">
            描述用<em>Python</em>抓取熊猫TV<em>弹幕</em>信息。 

因为弹幕信息是通过TCP发送的数据,所以用的Python的socket编程。
获取弹幕之前要先发送一定数据格式到服务器,获取验证信息,通过后才会返回弹幕数…





Sun1956
Sun1956



2016-06-04 21:42:14



阅读数:3063







https://s3m.mediav.com/galileo/bac8429f9127e160f845c9bb5040ff62.jpg)”>


新政策:50岁以上中老年福利:参加口福计划!免费种牙!免费!
北京京一口腔 · 顶新






var width = $("div.recommend-box").outerWidth() - 48;
NEWS_FEED({
w: width,
h : 90,
showid : 'GNKXx7',
placeholderId: "ad1",
inject : 'define',
define : {
imagePosition : 'right',
imageBorderRadius : 0,
imageWidth: 120,
imageHeight: 90,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 20,
titleFontColor: '#333',
titleFontFamily : 'Microsoft Yahei',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 10,
titlePaddingLeft : 0,
displayDesc : true,
descFontSize: 14,
descFontColor: '#6b6b6b',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#ca0c16'
}
})
            <div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
    <h4 class="text-truncate">
        <a href="https://blog.csdn.net/qq_20480611/article/details/50526394" target="_blank" strategy="BlogCommendFromQuerySearch_2">
            获取斗鱼直播间的<em>弹幕</em>信息           </a>
    </h4>
    <p class="content">
        <a href="https://blog.csdn.net/qq_20480611/article/details/50526394" target="_blank">
            最近在知乎上看到这个话题,感觉很有趣,自己实验了,果然可以,特此分享:https://www.zhihu.com/question/29027665

实验准备:Wireshark、Linux…





qq_20480611
qq_20480611



2016-01-15 23:50:30



阅读数:4788






统一资源定位符 ’ ” 单双无区别 ”’三引号支持多行,类似pre标签

url = ‘https://api.live.bilibi





quedgee
quedgee



2018-01-06 18:34:35



阅读数:134







https://s3m.mediav.com/galileo/547901-4152203b7e7e55359cb405bb106ff182.jpg)”>


耳鸣怎么处理好得比较快 点击查看方法……
素显 · 顶新






var width = $("div.recommend-box").outerWidth() - 48;
NEWS_FEED({
w: width,
h: 90,
showid: 'Afihld',
placeholderId: 'a_d_feed_0',
inject: 'define',
define: {
imagePosition: 'right',
imageBorderRadius: 0,
imageWidth: 120,
imageHeight: 90,
imageFill: 'clip',
displayImage: true,
displayTitle: true,
titleFontSize: 20,
titleFontColor: '#333',
titleFontFamily: 'Microsoft Yahei',
titleFontWeight: 'bold',
titlePaddingTop: 0,
titlePaddingRight: 0,
titlePaddingBottom: 10,
titlePaddingLeft: 0,
displayDesc: true,
descFontSize: 14,
descFontColor: '#6b6b6b',
descFontFamily: 'Microsoft Yahei',
paddingTop: 0,
paddingRight: 0,
paddingBottom: 0,
paddingLeft: 0,
backgroundColor: '#fff',
hoverColor: '#ca0c16'
}
})





触手tv弹幕关注刷取源码



2018年02月10日
363KB
下载











ios弹幕效果



2016年03月23日
33KB
下载













id="iframeu3394176_0" src="https://pos.baidu.com/tcbm?conwid=800&conhei=100&rdid=3394176&dc=3&di=u3394176&dri=0&dis=0&dai=5&ps=5183x659&enu=encoding&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1528628126944&ti=%E6%AF%8F%E4%B8%AA%E5%A4%A7%E4%B8%BB%E6%92%AD%E9%83%BD%E6%98%AF%E6%BB%A1%E5%B1%8F%E5%BC%B9%E5%B9%95%EF%BC%8C%E6%80%8E%E4%B9%88%E5%81%9A%E5%88%B0%E7%9A%84%EF%BC%9FPython%E5%AE%9E%E6%88%98%E6%97%A0%E9%99%90%E5%88%B7%E5%BC%B9%E5%B9%95%EF%BC%81%20-%20CSDN%E5%8D%9A%E5%AE%A2&ari=2&dbv=2&drs=3&pcs=1903x960&pss=1903x5256&cfv=0&cpl=11&chi=1&cce=true&cec=UTF-8&tlm=1528628126&prot=2&rw=960&ltu=https%3A%2F%2Fblog.csdn.net%2Fqq_42022255%2Farticle%2Fdetails%2F80629703&ltr=https%3A%2F%2Fwww.csdn.net%2Fnav%2Fmobile&ecd=1&uc=1920x1050&pis=-1x-1&sr=1920x1080&tcn=1528628127&qn=7b8d30ebab677261&tt=1528628125156.1792.1792.1796" width="800" height="100" align="center,center" vspace="0" hspace="0" scrolling="no">




C# POST——爬取B站直播时的弹幕




打开b站,随便点进个直播,打开chrome自带的开发者工具,抓下包

妈耶…这封包还挺多的啊…慢慢的分析一会发现了这个

表面上看好像不是我们想要的,点开数据看了一下(⓿_⓿)

哎没错了…





qq_15505341
qq_15505341



2018-01-30 23:25:35



阅读数:320








没有更多推荐了,返回首页




抖音直播弹幕礼物控制游戏,可以使用Python的第三方库`DouyinOpenAPI`来实现。这个库是基于抖音官方的开放API接口实现的,可以方便地获取直播间信息、弹幕、礼物等数据。 首先,需要在抖音开放平台上申请开发者账号,并创建一个应用来获取应用ID和应用Secret。 然后,安装`DouyinOpenAPI`库,可以使用以下命令: ``` pip install DouyinOpenAPI ``` 接下来,可以使用以下代码实现一个简单的抖音直播弹幕礼物控制游戏: ```python from DouyinOpenAPI import Client import time # 应用ID和应用Secret app_id = 'your_app_id' app_secret = 'your_app_secret' # 直播间ID room_id = 'your_room_id' # 创建客户端对象 client = Client(client_key=app_id, client_secret=app_secret) # 获取直播间信息 room_info = client.room.get_info(room_id=room_id) # 直播间标题和主播名字 title = room_info['data']['title'] nickname = room_info['data']['owner']['nickname'] print(f'正在进入直播间:{title},主播:{nickname}。') # 获取直播弹幕和礼物 while True: # 获取最新的20条弹幕 comments = client.comment.list(room_id=room_id, count=20) for comment in comments['data']: # 输出弹幕内容 print(f'{comment["user"]["nickname"]}:{comment["text"]}') # 如果弹幕包含“礼物”,则发送一条评论 if '礼物' in comment['text']: client.comment.create(room_id=room_id, text='我来送礼物了!') # 获取最新的10条礼物记录 gifts = client.gift.list(room_id=room_id, count=10) for gift in gifts['data']: # 输出礼物信息 print(f'{gift["user"]["nickname"]} 送了 {gift["gift_name"]} x {gift["gift_count"]}') # 如果礼物数量大于等于3,则发送一条评论 if gift['gift_count'] >= 3: client.comment.create(room_id=room_id, text=f'{gift["user"]["nickname"]}送的礼物好给力,我要上车!') # 间隔5秒钟获取弹幕和礼物 time.sleep(5) ``` 这个代码会不断地获取直播弹幕和礼物,并根据弹幕和礼物数量来发送评论。当然,这只是一个简单的示例,实际情况下可能需要更复杂的逻辑来判断何时发送评论。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值