Python得到弹幕并保存到Excel中怎么设置

下面我将为你详细讲解Python如何获取弹幕并保存到Excel中。这个过程大致可以分为两个步骤:

  1. 获取弹幕数据

弹幕从哪里来?我们可以通过访问一些弹幕网站,例如B站或Acfun网站,获取弹幕数据。这里我以B站为例,首先我们需要找到弹幕API的地址,这里我们可以使用Fiddler等抓包工具,来获取弹幕信息相关的请求地址和参数。这里我提供一个B站获取弹幕API的地址,供大家参考:

https://api.bilibili.com/x/v1/dm/list.so?oid=弹幕视频编号

其中oid就是弹幕视频的编号,这个可以在B站网页版地址中获得。获取到地址后,我们就可以使用Python中的requests库发起请求获取弹幕数据:

import requests
from bs4 import BeautifulSoup

url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=弹幕视频编号'
response = requests.get(url)
soup = BeautifulSoup(response.content,features="lxml")
danmu_items = soup.find_all('d')

在这个代码块中,我们使用requests库请求了弹幕数据的网址,然后解析了返回的XML数据,其中所有的弹幕数据都在<d></d>标签下,我们通过find_all方法来获取所有弹幕数据。这个过程需要使用BeautifulSoup库解析XML数据。

  1. 保存数据至Excel表格中

我们可以使用pandas库将弹幕数据保存至Excel表格中。代码如下:

import pandas as pd

danmu_dict = {'danmu_text': [], 'danmu_time': []}
for item in danmu_items:
    danmu_text = item.text
    danmu_time = item['p'].split(',')[0]
    danmu_dict['danmu_text'].append(danmu_text)
    danmu_dict['danmu_time'].append(danmu_time)

df = pd.DataFrame(danmu_dict)
df.to_excel('danmu.xlsx', index=False)

在这个代码块中,我们首先会将弹幕数据整理成一个字典格式的数据,然后使用pandas.DataFrame方法将数据转化为DataFrame格式。最后使用DataFrame.to_excel方法将数据保存至Excel表格中。在这个例子中,我们只保存了弹幕文本和弹幕时间,其他的一些元数据没有进行保存。

示例说明一:

以上的代码是获取弹幕,提取其中的时间和文本内容,并以Excel的形式保存所有数据,将数据保存到本地。但是,如果你想要实时获取弹幕并将其保存到Excel表格中,或者想要对不同弹幕类型进行分类统计,这个过程还需要进一步改进。

示例说明二:

针对以上问题,我们可以考虑使用WebSocket协议来实现动态弹幕的获取。接下来的代码示例使用Websocket实时获取B站直播弹幕,对弹幕进行了简单的文本分类,输出不同类型弹幕的数量并保存至Excel表格中。

import websocket
import json
import pandas as pd

danmu_dict = {'time':[], 'type':[], 'content':[]}

def on_message(ws, message):
    payload = json.loads(json.loads(message)[0]['data'])   
    if payload['cmd'] == 'DANMU_MSG':     
        time, dn_type, content = payload['info'][0], payload['info'][1][2], payload['info'][1][1]
        danmu_dict['time'].append(time)
        danmu_dict['type'].append(dn_type)
        danmu_dict['content'].append(content)
        print(f'{time}\t{dn_type}\t{content}') 

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")

def on_open(ws):
    ws.send('{"type": "loginreq","roomid": 直播房间号}')
    ws.send('{"type": "joingroup","rid": 直播房间号, "gid": -9999)')
    print('已经成功连接至Websocket服务器')

if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://broadcastlv.chat.bilibili.com:2245/sub")
    ws.on_open = on_open
    ws.on_message = on_message
    ws.on_error = on_error
    ws.on_close = on_close
    ws.run_forever()

    df = pd.DataFrame(danmu_dict)
    type_count = df.groupby('type').count()['content']

    print(type_count)
    df.to_excel('danmu.xlsx', index=False)

可以看到,以上代码使用了Websocket实时获取弹幕数据,并针对不同类型的文本弹幕信息进行了统计,并将获取到的数据保存至Excel表格中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python得到弹幕并保存到Excel中怎么设置 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python调用bash shell脚本方法

    下面是关于“Python调用Bash Shell脚本方法”的完整攻略及两条示例说明。 1. Python调用Bash Shell脚本方法 Python可以调用Bash Shell来执行命令和脚本,实现方法很简单,只需要使用Python的subprocess模块即可。 2. subprocess模块的用法 使用subprocess模块需要导入该模块,然后使用该…

    python 2023年6月2日
    00
  • 如何在Python中更新MongoDB数据库中的数据?

    以下是在Python中更新MongoDB数据库中的数据的完整使用攻略。 使用MongoDB数据库的前提条件 在使用Python连接MongoDB数据库之前,需要确保已经安装MongoDB数据库,并已经创建使用的数据库和集合,同时需要安装Python的驱动程序,例如pymongo。 步骤1:导入模块 在Python中使用pymongo模块连接MongoDB数据…

    python 2023年5月12日
    00
  • Pytorch 图像变换函数集合小结

    Pytorch图像变换函数集合小结 在深度学习领域,图像是最常见的数据类型之一。在使用Pytorch进行图像处理时,我们需要掌握一些基本的图像变换函数,以便于处理和增强我们的数据集。在本文中,我们将介绍一些Pytorch中常用的图像变换函数及其用法。 I. torchvision.transforms库 Pytorch提供了torchvision.trans…

    python 2023年5月14日
    00
  • Python实现多张图片合成一张马赛克图片

    下面是详细的“Python实现多张图片合成一张马赛克图片”的攻略。 1. 前置准备: 在实现该功能之前,你需要先安装Pillow和numpy两个Python库。其中,Pillow可以用于图片处理,numpy则可以用于矩阵计算。你可以通过以下命令安装: pip install Pillow pip install numpy 2. 基本思路: 构建一张目标大小…

    python 2023年5月19日
    00
  • 浅谈Python3中打开文件的方式(With open)

    浅谈Python3中打开文件的方式(Withopen) 在Python3中,打开文件是非常常见的一种操作,可以通过 with open 的方式来实现文件的读取和写入。这种方式可以有效避免文件对象没有正常关闭的问题,同时也更加方便、简单。 打开文件的方式 在Python中,打开文件可以采用以下的方式: with open(文件路径, mode=’r’, enc…

    python 2023年5月13日
    00
  • 网易游戏的面试题与参考答案记录

    网易游戏的面试题与参考答案记录攻略 背景 网易游戏是国内一家知名的游戏开发和发行公司,每年都有大量的求职者前来投递简历。而网易游戏在招聘过程中采用了一些非常有挑战性和特殊性的面试题。这些面试题不但可以考验面试者的编程能力和思维难度,也可以考查面试者的创新能力和解决问题能力。因此,对于想要应聘网易游戏或从事相关职业的求职者来说,了解和掌握这些面试题是非常重要的…

    python 2023年6月3日
    00
  • Python常用编码的区别介绍

    当我们写Python代码时,有多种编码方式可供选择,而不同的编码方式之间也存在一些区别。下面我会逐一讲解常用的三种编码方式,它们分别是ASCII、UTF-8和ISO-8859-1。 ASCII编码 ASCII编码是最早的一种字符编码方式,它使用7个比特位来表示一个字符,总共可以表示128种不同的字符,包括26个英文字母、数字、符号等。 ASCII编码逐渐被淘…

    python 2023年5月20日
    00
  • 一文掌握Python爬虫XPath语法

    一文掌握Python爬虫XPath语法攻略 什么是XPath XPath是一种用于在XML和HTML文档中进行导航和查找信息的语言。XPath的语法相对简洁明了,可以将多个条件组合起来进行查询,是爬虫中常用的解析技术之一。 XPath语法结构 XPath通过路径表达式来选取XML或HTML文档中的节点或元素。 选取节点 在XPath中,节点可以通过路径表达式…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部