芒果tv自己发的弹幕自己看不了,芒果tv的弹幕怎么找不到

首页 > 实用技巧 > 作者:YD1662023-11-06 19:37:57

点击并拖拽以移动

分析弹幕真实url,我们发现,参数5981449914376200是视频tvid,参数62是tvid倒数4为的前两位,参数00是tvid的最后两位,.z前的参数1为视频总时长除以300秒向上取整。观察相邻两个弹幕文件包,可以看出爱奇艺每5分钟更新一次弹幕文件。

芒果tv自己发的弹幕自己看不了,芒果tv的弹幕怎么找不到(9)

点击并拖拽以移动

由于直接爬取出来的弹幕文件存在乱码,需要进行二进制编码,方可得到最终的弹幕数据。

2.爬虫实战

import zlib

import requests

1.爬取xml文件

def download_xml (url) :

bulletold = requests.get(url).content # 二进制内容

return zipdecode(bulletold)

def zipdecode (bulletold) :

'对zip压缩的二进制内容解码成文本'

decode = zlib.decompress(bytearray(bulletold), 15 32 ).decode( 'utf-8' )

return decode

for x in range( 1 , 12 ):

x是从1到12,12怎么来的,这一集总共57分钟,爱奇艺每5分钟会加载新的弹幕,57除以5向上取整

url = 'cmts.iqiyi.com/bullet/62/0… str(x) '.z'

xml = download_xml(url)

把编码好的文件分别写入17个xml文件中(类似于txt文件),方便后边取数据

with open( './aiqiyi/iqiyi' str(x) '.xml' , 'a ' , encoding= 'utf-8' ) as f:

f.write(xml)

2.读取xml文件中的弹幕数据数据

from xml.dom.minidom import parse

import xml.dom.minidom

def 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:

content = entry.getElementsByTagName( 'content' )[ 0 ]

print(content.childNodes[ 0 ].data)

i = content.childNodes[ 0 ].data

result.append(i)

return result

with open( "aiyiqi_danmu.txt" , mode= "w" , encoding= "utf-8" ) as f:

for x in range( 1 , 12 ):

l = xml_parse( "./aiqiyi/iqiyi" str(x) ".xml" )

for line in l:

f.write(line)

f.write(

"\n"

3.数据预览

芒果tv自己发的弹幕自己看不了,芒果tv的弹幕怎么找不到(10)

点击并拖拽以移动


最后多说一句,小编是一名python开发工程师,这里有我自己整理的一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.