-
最近热播的电视剧《山海情》好看吗?爬取视频弹幕来分析一下
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
作者:努力学习的渣渣哦
来源:胆小鬼
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://www.xin3721.com/eschool/pythonxin3721/
前言
前段时间的《大江大河2》非常火,但是由于《大江大河1》我没有看过,也就激不起我想看的欲望。但是最近更新的《山海情》,我周五晚上点进去,然后一口气看了6集原声版的,22点开始看,每集40min,问几点睡?
该剧讲述了二十世纪九十年代以来,在国家扶贫政策的引导下,在福建的对口帮扶下,西海固的人民群众移民搬迁,不断克服各种困难,探索脱贫发展办法,将风沙走石的“干沙滩”建设成寸土寸金的“金沙滩”的故事。----剧集官方介绍
原声版就是台词是用宁夏那边的方言讲述的,配音版是普通话版的,推荐原声版的,会更有那种打动人心的感觉。《山海情》讲最动人的扶贫故事。
2021年是“十四五”开局之年,也是全面建设社会主义现代化国家新征程开启之年,还是建党100周年。《大江大河》、《山海情》作为献礼片,这么受欢迎,可见拍的质量有多高。同样题材的还有《跨过鸭绿江》《江山如此多娇》等。
孔笙导演,正午阳光出品......都是精品,演员每一个都是老戏骨,一点注水的那种演员都没有。
目前更新到第九集,爬下第一集的弹幕,看看大家都在说什么。
1.找弹幕在哪?
重点是搜索【.z】,不一样的是找到的“Request URL”打开是个压缩包,里面含有弹幕内容,所以程序里面会有解压这一步。
2.程序
import requests import pandas as pd import zlib import re import time def get_aiqiyi_danmu(tvid): """ 功能:给定tvid,获取爱奇艺一集的弹幕评论信息 """ # 建立空df df_all = pd.DataFrame() # 初始page_num page_num = 1 while True: # 打印进度 print(f'正在获取第{page_num}页的弹幕数据') try: # 获取URL url = f'https://cmts.iqiyi.com/bullet/{str(tvid)[-4:-2]}/{str(tvid)[-2:]}/{str(tvid)}_300_{page_num}.z' # 添加headers headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36' } # 发起请求 try: r = requests.get(url, headers=headers, timeout=3) except Exception as e: print(e) r = requests.get(url, headers=headers, timeout=3) # 转换为arrry zarray = bytearray(r.content) # 解压字符串 xml = zlib.decompress(zarray, 15+32).decode('utf-8') # 用户名 name = re.findall('<name>(.*?)</name>', xml) # 评论ID contentId = re.findall('<contentId>(.*?)</contentId>', xml) # 评论信息 content = re.findall('<content>(.*?)</content>', xml) # 展示时间 showTime = re.findall('<showTime>(.*?)</showTime>', xml) # 点赞次数 likeCount = re.findall('<likeCount>(.*?)</likeCount>', xml) # 保存数据 df_one = pd.DataFrame({ 'name': name, 'contentId': contentId, 'content': content, 'showTime': showTime, 'likeCount': likeCount }) # 循环追加 df_all = df_all.append(df_one, ignore_index=True) # 休眠一秒 time.sleep(1) # 页数+1 page_num += 1 except Exception as e: print(e) break return df_all # 抓包获取视频tvid tvid_list = [8369497643194100] episodes_list = ['第一集 ' ] # 循环获取所有集数据 for tvid, episodes in zip(tvid_list, episodes_list): print(tvid, episodes) # 获取数据 df = get_aiqiyi_danmu(tvid=tvid) # 插入列 df.insert(0, 'episodes', episodes) # 导出数据 df.to_csv(f'df_{episodes}.csv')
只爬取单集输入tvid就可以了,连续获取集数需要再获取url,再从返回的结果中
获取tvid
3.结果
遮住的是用户名称。
简单的画下词云
总之就是推荐,看完之后觉得现在的生活真美好,没有什么比以前更苦的年代了。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程