芒果tv怎么查看自己发过的弹幕

首页 > 实用技巧 > 作者:YD1662023-11-06 18:58:32

今天讲解如何用python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几个常见常用的影视、舆论平台的弹幕和评论,这类爬虫得到的结果一般用于娱乐、舆情分析,如:新出一部火爆的电影,爬取弹幕评论分析他为什么这么火;微博又出大瓜,爬取底下评论看看网友怎么说,等等这娱乐性分析。

本文爬取一共六个平台,十个爬虫案例,如果只对个别案例感兴趣的可以根据:芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这一顺序进行拉取观看。完整的实战源码已在文中,我们废话不多说,下面开始操作!

芒果TV

本文以爬取电影《悬崖之上》为例,讲解如何爬取芒果TV视频的弹幕和评论!

网页地址:

https://www.mgtv.com/b/335313/12281642.html?fpa=15800&fpos=8&lastp=ch_movie 弹幕分析网页

弹幕数据所在的文件是动态加载的,需要进入浏览器的开发者工具进行抓包,得到弹幕数据所在的真实url。当视频播放一分钟它就会更新一个json数据包,里面包含我们需要的弹幕数据。

芒果tv怎么查看自己发过的弹幕,(1)

得到的真实url:

https://bullet-ali.hitv.com/bullet/2021/08/14/005323/12281642/0.json https://bullet-ali.hitv.com/bullet/2021/08/14/005323/12281642/1.json

可以发现,每条url的差别在于后面的数字,首条url为0,后面的逐步递增。视频一共120:20分钟,向上取整,也就是121条数据包。

实战代码

import requests import pandas as pd headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } df = pd.DataFrame() for e in range(0, 121): print(f'正在爬取第{e}页') resposen = requests.get(f'https://bullet-ali.hitv.com/bullet/2021/08/3/004902/12281642/{e}.json', headers=headers) # 直接用json提取数据 for i in resposen.json()['data']['items']: ids = i['ids'] # 用户id content = i['content'] # 弹幕内容 time = i['time'] # 弹幕发生时间 # 有些文件中不存在点赞数 try: v2_up_count = i['v2_up_count'] except: v2_up_count = '' text = pd.DataFrame({'ids': [ids], '弹幕': [content], '发生时间': [time]}) df = pd.concat([df, text]) df.to_csv('悬崖之上.csv', encoding='utf-8', index=False)

结果展示:

芒果tv怎么查看自己发过的弹幕,(2)

评论分析网页

芒果TV视频的评论需要拉取到网页下面进行查看。评论数据所在的文件依然是动态加载的,进入开发者工具,按下列步骤进行抓包:Network→js,最后点击查看更多评论。

芒果tv怎么查看自己发过的弹幕,(3)

加载出来的依然是js文件,里面包含评论数据。得到的真实url:

https://comment.mgtv.com/v4/comment/getCommentList?page=1&subjectType=hunantv2014&subjectId=12281642&callback=jQuery1820749973529821774_1628942431449&_support=10000000&_=1628943290494 https://comment.mgtv.com/v4/comment/getCommentList?page=2&subjectType=hunantv2014&subjectId=12281642&callback=jQuery1820749973529821774_1628942431449&_support=10000000&_=1628943296653

其中有差别的参数有page和_,page是页数,_是时间戳;url中的时间戳删除后不影响数据完整性,但里面的callback参数会干扰数据解析,所以进行删除。最后得到url:

https://comment.mgtv.com/v4/comment/getCommentList?page=1&subjectType=hunantv2014&subjectId=12281642&_support=10000000

数据包中每页包含15条评论数据,评论总数是2527,得到最大页为169。

芒果tv怎么查看自己发过的弹幕,(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

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