千家信息网

Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。「《奔跑吧》第五季」已经
千家信息网最后更新 2026年10月31日Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析

Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

「《奔跑吧》第五季」已经播出两期了,节目以"黄河生态经济带"沿线地区为依托,通过创新游戏设置、直播带货扶贫等新形式,展现黄河流域的重要地位,描绘黄河生态经济带城市"文化之美"。

然而,网友貌似并不买账,邓超、郑凯等退出跑男后,「收视明显不如以前」,而吐槽貌似有所增加。为了了解吃瓜群众们对于跑男的看法,我爬了爬腾讯视频关于跑男的评论,并做了简单文本「可视化分析」。

数据获取

腾讯视频评论要点击「查看更多评论」才能加载更多数据,很明显是一个动态网页,评论内容使用了「Ajax动态加载技术」。因此,我们需要找到「真实URL」,然后再请求数据。通过真实URL获取到cursor=?和_=?这两个参数即可。核心代码如下:

def main():    #初始页面的_=?    page=1607948139253    #初始待刷新页面的cursor=?    lastId="0"    for i in range(1,1000):        time.sleep(1)        html = get_content(page,lastId)        #获取评论数据        commentlist=get_comment(html)        print("------第"+str(i)+"轮页面评论------")        k = 0        for j in range(1,len(commentlist)):            comment = commentlist[j]            k += 1            print('第%s条评论:%s'%(k,comment))        #获取下一轮刷新页ID        lastId=get_lastId(html)        page += 1if __name__ == '__main__':    main()

数据处理

导入相关包

import jiebaimport reimport numpy as npimport pandas as pd import matplotlib.pyplot as plt from pyecharts.charts import *from pyecharts import options as opts from pyecharts.globals import ThemeType  import stylecloudfrom IPython.display import Image

导入评论数据

分别爬取了两期评论,因此需要分别读取并合并所有数据。

df1 = pd.read_csv('/腾讯评论/paonan.csv',names=['评论内容'])df2 = pd.read_csv('/腾讯评论/paonan1.csv',names=['评论内容'])df = pd.concat([df1,df2])df.head(10)

数据预览

查看数据信息

print('共有评论数:',df.shape[0],'条')

共有评论数:21307 条

df.info()df['评论内容'] = df['评论内容'].astype('str')
Int64Index:21307 entries, 0 to 11833Data columns (total 1 columns): #   Column  Non-Null Count  Dtype ---  ------  --------------  -----  0   评论内容    21199 non-null  objectdtypes: object(1)memory usage: 332.9+ KB

删除重复评论

df = df.drop_duplicates()

删除缺失数据

df = df.dropna()

增加评论类型

人为划分评论类型,20字以下为短评,20-50字为中评,50字以上为长评。

cut = lambda x : '短评'if len(x) <= 20else ('中评'if len(x) <=50else'长评')df['评论类型'] = df['评论内容'].map(cut)

提取演员关键词

根据评论内容关键词,提取出人物提及字段。

tmp=[]for i in df["评论内容"]:    if"黑牛"in i:        tmp.append("李晨")    elif"杨颖"in i:        tmp.append("杨颖")    elif"沙溢"in i:        tmp.append("沙溢")    elif"坤"in i:        tmp.append("蔡徐坤")    elif"毅"in i:        tmp.append("成毅")    elif"一桐"in i:        tmp.append("李一桐")          else:        tmp.append("其他")df['人物提及'] = tmp

机械压缩去重

定义一个机械压缩函数:

def yasuo(st):    for i in range(1,int(len(st)/2)+1):        for j in range(len(st)):            if st[j:j+i] == st[j+i:j+2*i]:                k = j + i                while st[k:k+i] == st[k+i:k+2*i] and k

调用函数,对评论内容进行机械压缩去重:

df["评论内容"] = df["评论内容"].apply(yasuo)

特殊字符处理

用正则表达式提取出中文:

df['评论内容'] = df['评论内容'].str.extract(r"([\u4e00-\u9fa5]+)")df = df.dropna()  #纯表情弹幕直接删除

过滤掉评论字数少于四个字的评论:

df = df[df["评论内容"].apply(len)>=4]df = df.dropna()

数据可视化

整体评论情况

# 绘制词云图text1 = get_cut_words(content_series=df['评论内容'])stylecloud.gen_stylecloud(text=' '.join(text1), max_words=1000,                          collocations=False,                          font_path='演示悠然小楷.ttf',                          icon_name='fas fa-video',                          size=653,                          #palette='matplotlib.Inferno_9',                          output_name='./评论.png')Image(filename='./评论.png')

通过对所有评论进行词云图绘制,我们发现「成毅」提及最多,对于最新跑男的看法,大家表现出非一致的看法。有人说「好看、喜欢」,有人说「没意思」。另外,评论中还多次提到往期节目中的嘉宾,如「陈赫、郑凯、郭麒麟」等,没有比较就没有伤害,很多人还是更喜欢往期的跑男的。

评论类型分布

df2 = df.groupby('评论类型')['评论内容'].count()df2 = df2.sort_values(ascending=False) regions = df2.index.to_list()values = df2.to_list()c = (        Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK))        .add("", zip(regions,values),radius=["40%", "70%"])        .set_global_opts(title_opts=opts.TitleOpts(title="评论类型占比",subtitle="数据来源:腾讯视频",pos_top="2%",pos_left = 'center'))        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=18))    )c.render_notebook()

短评占据「81.99%」,仅有2.65%的观众给出了50字以上的评论。

演员角色提及

df8 = df["人物提及"].value_counts(ascending=True)[:6]print(df8.index.to_list())print(df8.to_list())c = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))    .add_xaxis(df8.index.to_list())    .add_yaxis("",df8.to_list()).reversal_axis()    .set_global_opts(title_opts=opts.TitleOpts(title="人物提及次数",subtitle="数据来源:腾讯视频 ",pos_left = 'top'),                       xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改横坐标字体大小                       yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改纵坐标字体大小                       )    .set_series_opts(label_opts=opts.LabelOpts(font_size=16,position='right'))    )c.render_notebook()

新成员「成毅」被观众提及次数最多,达到790次,其次是「蔡徐坤」,被提及452次。李晨被提及次数最少。

成毅评论词云

cy = df[df["人物提及"]=="成毅"]text = get_cut_words(content_series=cy['评论内容'])stylecloud.gen_stylecloud(text=' '.join(text), max_words=500,                          collocations=False,                          font_path='演示悠然小楷.ttf',                          icon_name='fas fa-comments',                          #palette='matplotlib.Inferno_9',                          size=653,                          output_name='./dinghui.png')Image(filename='./dinghui.png')

成毅在新一季跑男的表现被网友广泛议论,认可他的观众「喜欢、期待、可爱」他的表现。也有相当多的观众觉得他「智商」有问题,是个「游戏黑洞」,而且很「搞笑」。

关于Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

评论 内容 数据 腾讯 视频 类型 人物 分析 可视化 更多 观众 问题 文本 机械 次数 看法 短评 页面 黄河 明显 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 科技互联网产品 米客互联网科技 哈尔滨秒房互联网科技有限公司 须眉科技是互联网公司吗 苏州五指互联网络科技有限 青岛科技大学互联网大赛研究生 华夏互联网科技业 和信科技工业互联网 互联网科技大奖都有哪些公司 亳州好赞互联网科技有限公司 内蒙古九一互联网科技 互联网在线教育科技创业 互联网安防科技感 工业互联网科技成果转化 悟空问答互联网科技 互联网科技大佬云集 互联网的黑科技实验室 知域互联网科技有限公司官网 科技发展第三阶段互联网时代 顺玮阁互联网科技 互联网前沿科技 互联网科技有限公司 翻译 以后互联网后是啥科技 现代互联网科技股 工业互联网等科技实现智能化赋能 工业互联网山东科技大学 新氧科技和美国互联网有关系吗 广州三三互联网科技有限公司 高科技和互联网的现代国家
0