import requests

import win32com.client

import time

danmu="D:/python_work/成品/danmu.txt"

old_list=[]

romid = input("请输入房间id:")

#创建一个old_list列表用于辅助后面的text_danmu方法提取新消息

class bilibiliDanmu():

#定义一个Danmu类

def __init__(self):

self.url = "https://api.live.bilibili.com/ajax/msg"

self.headers={

"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",

"Referer": "https://live.bilibili.com/",

}

self.data = {

"roomid":romid,

"csrf_token":"",

"csrf":"",

"visit_id":""

}

#在 __init__方法中先定义好要使用的请求url,请求头,和请求参数

def speak_text(self,text):

#定义一个speak_text方法,并创建形参text,用于作为接下来读取的文字

speak =  win32com.client.Dispatch("SAPI.SpVoice")

#创建发声对象

speak.Speak(text)

#使用发生对象读取文字!!可以关闭声音!

def text_danmu(self,html):

#创建一个text_danmu方法,用于提取弹幕信息

global old_list

#设置变量作用域,使得该方法可以修改全局变量old_list的值

temp_list = []

#创建一个temp_list列表用于作为临时列表辅助提取弹幕消息

for text in html["data"]["room"]:

#for循环提取html字典中嵌套的子字典data中嵌套的子字典room的内容赋值给text变量

#这个html字典来自于get_danmu方法传递

danmu_string=text["nickname"] +"说:"+ text["text"]

temp_list.append(danmu_string)

#print(danmu_string)

if temp_list == old_list:

pass

#检测temp_list临时列表的内容和old_list是否相同,如果相同则跳过

else:

print ("First list length : %d" %len(temp_list))

for text_number in range (1,11):

#创建for循环一次将1到10的数字赋给text_number

if "".join(temp_list[:text_number]) in "".join(old_list):

pass

#使用join方法以""为分割符提取temp_list切割后的列表的内容

#使用join方法以""为分割符提取old_list列表的内容

#比较内容是否相同,如果相同则跳过

else:

try:

print (temp_list[text_number-1])

c=(temp_list[text_number-1])

with open (danmu,"w")as g:

e=c

g.write(str(e))

g.close()

except:

pass

else:

self.speak_text(temp_list[text_number-1])

#尝试打印temp_list指定索引的内容,如果报错则跳过

#否则调用speak_text方法,进行文字转语言

old_list = temp_list[:]

#将temp_list的值赋给old_list,进行更新旧信息列表

def get_danmu(self):

html = requests.post(url=self.url,headers=self.headers,data=self.data)

html.json()

self.text_danmu(eval(html.text))

#定义get_danmu方法

#使用requests.post方法获取网页内容

#将网页返回值以json的信息加载

#调用之前定义的text_danmu方法,传递eval处理后的网页返回值的文本内容

bzhan = bilibiliDanmu()

#创建一个bzhan实例

while True:

bzhan.get_danmu()

time.sleep(10)

b站弹幕姬python_Python 融合多方代码b站弹幕朗读姬代码相关推荐

  1. B站直播弹幕获取 - 用python写一个B站弹幕姬吧

    前言 关于这个小项目的由来. 最开始是想要利用b站的弹幕进行一些互动之类的.原本也有想过可以利用现有的弹幕姬做个插件来解决的,但无奈不会C#,所以只能自己研究b站的弹幕协议. 后来有写过一个C++版本 ...

  2. 利用python对b站某GPT-4解说视频的近万条弹幕进行爬取、数据挖掘、数据分析、弹幕数量预测及情绪分类

    目录 一.利用Python爬取弹幕 二.利用几行代码直接生成词云 三.将弹幕属性和内容放入mysql当中 四.分析弹幕在视频各节点的数量 1.分析视频各个片段出现的弹幕数量 2.分析视频各大章节出现的 ...

  3. B站2020跨年晚会,被弹幕刷屏的节目是哪个,发弹幕最多的人又是谁?

    作者 | CDA数据分析师 本以为薛之谦粉丝会觉得不妥给C君留言指正,没想到却是被数据分析爱好者从内容上提出了严厉的批评. 垃圾标题党...我以为收集的数据是与春晚观看人数,成本之类的对比,结果搞了个 ...

  4. pythongui界面实现爬取b站弹幕_Python爬虫自动化爬取b站实时弹幕实例方法

    免费资源网,https://freexyz.cn/ 最近央视新闻记者王冰冰以清除可爱和专业的新闻业务水平深受众多网友喜爱,b站也有很多up主剪辑了关于王冰冰的视频.我们都是知道b站是一个弹幕网站,那你 ...

  5. python爬取B站视频历史弹幕,并去除同标签的重复弹幕,暴力拿下所有弹幕。

    嘻嘻嘻,今天我们来爬小B站的弹幕. 文章目录 前言 一.爬取历史弹幕的思路讲解 1.如何找到弹幕的爬取位置 2.如何找到历史弹幕的位置 二.代码讲解部分 1.引入库 2.编写自己的headers 3. ...

  6. Python学习笔记-爬取B站电视剧《风犬少年的天空》弹幕并分析

    爬取B站电视剧<风犬少年的天空>弹幕并分析 写在前面 开始! 简单分析一下弹幕数据 蠢并痛苦着的学习过程... 干(烂)货环节-------弹幕的获取与整理 关于cid的获取 关于弹幕上限 ...

  7. python接收弹幕_Python爬虫自动化爬取b站实时弹幕实例方法

    最近央视新闻记者王冰冰以清除可爱和专业的新闻业务水平深受众多网友喜爱,b站也有很多up主剪辑了关于王冰冰的视频.我们都是知道b站是一个弹幕网站,那你知道如何爬取b站实时弹幕吗?本文以王冰冰视频弹幕为例 ...

  8. 一站式快速自助建站-超低价0代码建站套餐助你轻松拥有自己的网站

    简介:一站式快速自助建站-超低价0代码建站套餐助你轻松拥有自己的网站 点击链接,一站式快速自助建站助你轻松拥有自己的网站 https://developer.aliyun.com/plan/activ ...

  9. 2017年山东省两化融合深度行临沂站成功举办

    为贯彻落实<国务院关于深化制造业与互联网融合发展的指导意见>(国发[2016]28号)工作部署,总结交流两化融合创新模式和实践成果,分享制造业与互联网跨界融合的典型经验和主要做法,研讨融合 ...

最新文章

  1. C#实现Windows服务的制作安装和删除
  2. nagios监控mysql主从复制
  3. mac mysql使用_在Mac中安装和使用MySQL
  4. GitHub 热榜:这款开源神器可帮您将文本转换为手写文字,并下载为 PDF 格式文件!...
  5. 快速排序算法javascript实现
  6. Servlet实现登录注册
  7. 每天九点十分开始每半小时一次执行一个cron_每天通勤4小时!西咸双城生活的上班族,不简单...
  8. 2021奢侈品营销启示录
  9. kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
  10. yum install ruby出错:error downloading packages
  11. 高斯滤波详解 python实现高斯滤波
  12. OSG仿真案例(3)——cmake创建工程
  13. 在VS中查看Halcon变量
  14. 车辆模型-跟踪误差模型
  15. 威金VIKing病毒专杀 ,瑞星viking专杀
  16. java里 输出101-150中的素数
  17. Mac - 通过 Script 实现更换桌面壁纸
  18. Remember-Me功能
  19. 视频分析与多模态融合之一,为什么需要多模态融合
  20. android 固件管理器,刷机精灵(原Android固件管理器桌面版)

热门文章

  1. 当人说君子动口不动手时怎么回怼_俗话说:“君子动口不动手。”那么到底什么样的人才称得上君子?...
  2. win10上部署elasticsearch8.1.1
  3. 杰理之蓝牙认证【篇】
  4. DXVA 处理交错视频
  5. 第65天-内网安全-域环境工作组局域网探针方案
  6. 全国翻译资格考试 介绍
  7. cp 复制文件或目录
  8. Android——高德地图实现多点连线与点击定位监听实现
  9. html邮箱代码怎么写_如何制作一个简单的HTML登录页面(附代码)
  10. mysql5.6 安装配置 老系统_Windows系统 Mysql5.6下载安装以及配置