怎么使用Python爬取视频弹幕
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,今天就跟大家聊聊有关怎么使用Python爬取视频弹幕,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言之前爱奇艺独播热剧『赘婿』特别火,笔者也
千家信息网最后更新 2025年02月12日怎么使用Python爬取视频弹幕
今天就跟大家聊聊有关怎么使用Python爬取视频弹幕,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
前言
之前爱奇艺独播热剧『赘婿』特别火,笔者也在一直追,借助手中的技术,想爬取弹幕分析该剧的具体情况以及网友的评论!
由于为了让小白彻底学会使用python爬取爱奇艺弹幕的技术,因此本文详细介绍如何进行爬取,下文再进行分析数据!
分析数据包
1.查找数据包
在浏览器里面按F12
找到这类url
https://cmts.iqiyi.com/bullet/54/00/7973227714515400_60_2_5f3b2e24.br
2.分析弹幕链接
其中的/54/00/7973227714515400,才是有用的!!!!
爱奇艺的弹幕获取地址如下:
https://cmts.iqiyi.com/bullet/参数1_300_参数2.z
参数1是:/54/00/7973227714515400
参数2是:数字1、2、3.....
爱奇艺每5分钟会加载新的弹幕,每一集约是46分钟,46除以5向上取整就是10
因此弹幕的链接如下:
https://cmts.iqiyi.com/bullet/54/00/7973227714515400_300_1.zhttps://cmts.iqiyi.com/bullet/54/00/7973227714515400_300_2.zhttps://cmts.iqiyi.com/bullet/54/00/7973227714515400_300_3.z......https://cmts.iqiyi.com/bullet/54/00/7973227714515400_300_10.z
3.解码二进制数据包
通过弹幕链接下载的弹幕包是以z为后缀格式的文件,需要进行解码!
def zipdecode(bulletold): '对zip压缩的二进制内容解码成文本' decode = zlib.decompress(bytearray(bulletold), 15 + 32).decode('utf-8') return decode
解码之后将数据保存成xml格式
# 把编码好的文件分别写入个xml文件中(类似于txt文件),方便后边取数据 with open('./lyc/zx' + str(x) + '.xml', 'a+', encoding='utf-8') as f: f.write(xml)
解析xml
1.提取数据
通过查看xml文件,我们需要提取的内容有1.用户id(uid)、2.评论内容(content)、3.评论点赞数(likeCount)。
#读取xml文件中的弹幕数据数据from xml.dom.minidom import parseimport xml.dom.minidomdef xml_parse(file_name): DOMTree = xml.dom.minidom.parse(file_name) collection = DOMTree.documentElement # 在集合中获取所有entry数据 entrys = collection.getElementsByTagName("entry") print(entrys) result = [] for entry in entrys: uid = entry.getElementsByTagName('uid')[0] content = entry.getElementsByTagName('content')[0] likeCount = entry.getElementsByTagName('likeCount')[0] print(uid.childNodes[0].data) print(content.childNodes[0].data) print(likeCount.childNodes[0].data)
保存数据
1.保存前工作
import xlwt# 创建一个workbook 设置编码workbook = xlwt.Workbook(encoding = 'utf-8')# 创建一个worksheetworksheet = workbook.add_sheet('sheet1')# 写入excel# 参数对应 行, 列, 值worksheet.write(0,0, label='uid')worksheet.write(0,1, label='content')worksheet.write(0,2, label='likeCount')
导入xlwt库(写入csv),并定义好标题(uid、content、likeCount)
2.写入数据
for entry in entrys: uid = entry.getElementsByTagName('uid')[0] content = entry.getElementsByTagName('content')[0] likeCount = entry.getElementsByTagName('likeCount')[0] print(uid.childNodes[0].data) print(content.childNodes[0].data) print(likeCount.childNodes[0].data) # 写入excel # 参数对应 行, 列, 值 worksheet.write(count, 0, label=str(uid.childNodes[0].data)) worksheet.write(count, 1, label=str(content.childNodes[0].data)) worksheet.write(count, 2, label=str(likeCount.childNodes[0].data)) count=count+1
最后保存成弹幕数据集-李运辰.xls
for x in range(1,11): l = xml_parse("./lyc/zx" + str(x) + ".xml")# 保存workbook.save('弹幕数据集-李运辰.xls')
看完上述内容,你们对怎么使用Python爬取视频弹幕有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
数据
内容
参数
文件
分析
链接
评论
视频
二进制
技术
格式
编码
下文
前言
后缀
地址
就是
情况
数字
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
周村服装erp软件开发公司
荔行网络技术
c 控制台数据库增删改查
软件开发岗位的介绍
字典数据库分组求和
数据库用户界面是什么
基于mpp数据库的数据中台
软件开发程序操作题
mac关系型数据库
创匠科技第五届互联网大会
网络安全巨头 18年利润
工作簿合并数据库
广州粤达通互联网科技有限公司
多城市网站数据库怎么设计
国家网络安全法测试卷附答案
数据库序列号循环
江津大学生网络安全周
中国民生银行软件开发
电大数据库应用技术历年试卷
金山区市场软件开发信息中心
苹果7连不上数据库
汽车电子产品软件开发教程
美国服务器优惠码
关系数据库中的二维表是指什么
数据库用户界面是什么
腾讯网络安全大会
为什竞聘网络技术岗位
孙宏斌乐视互联网科技
手赢天下网络技术有限公司
中国民生银行软件开发