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

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

Python如何抓取腾讯视频跑者的评论,对简单文本进行可视化分析?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的小伙伴找到更简单易行的方法。

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

然而,网友们似乎并不买账。在邓超和郑凯退出跑男后,「收视明显不如以前」's的吐槽似乎增多了。为了了解吃瓜群众对跑男的看法,我爬上腾讯视频里的跑男评论,做了一个简单的文字「可视化分析」.

10-1010腾讯视频评论需要点击「查看更多评论」加载更多数据,这显然是一个动态的网页,而且评论内容使用了「Ajax动态加载技术.因此,我们需要在请求数据之前找到「真实URL」。获取光标=?通过真实的网址。还有_=?这两个参数就可以了。核心代码如下:

defmain():

# _=初始页面的?

page=1607948139253

# cursor=要刷新的初始页面=?

lastId='0 '

foriirange(1,1000):

睡眠时间(1)

html=get_content(page,lastId)

#获取评论数据。

commentlist=get_comment(html)

Printstr(i' -

k=0

forjinrange(1,len(commentlist)):

注释=注释列表[j]

k=1

打印('注释%s: %s'%(k,注释))

#获取下一个刷新页面ID。

lastId=get_lastId(html)

页面=1

if__name__=='__main__':

main()

数据获取

数据处理

importjieba

进口

importnumpayasnp

importpandasaspd

importmatplotlib.pyplotasplt

frompyecharts.chartsimport*

frompeychartsimportoptions SAS opts

frompyech

arts.globals import ThemeType  
import stylecloud
from 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)

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

数据预览

查看数据信息

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

共有评论数:21307 条

df.info()
df['评论内容'] = df['评论内容'].astype('str')
<class 'pandas.core.frame.DataFrame'>
Int64Index:21307 entries, 0 to 11833
Data columns (total 1 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   评论内容    21199 non-null  object
dtypes: 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<len(st):   
                    k = k + i
                st = st[:j] + st[k:]    
    return st
yasuo(st="123")

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

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')

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

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

评论类型分布

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()

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

短评占据「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()

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

新成员「成毅」被观众提及次数最多,达到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如何爬取腾讯视频跑男的评论并做简单文本的可视化分析

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

关于Python如何爬取腾讯视频跑男的评论并做简单文本的可视化分析问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49725.html

(0)

相关推荐

  • 如何撤销fixed的效果(头部设置fixed后内容滚动)

    技术如何验证fixed关键字效果本篇文章为大家展示了如何验证fixed关键字效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。之前谈到String连接操作的性能,其中会涉及到un

    攻略 2021年12月19日
  • 呼风唤雨的意思,呼风唤雨的意思及成语故事

    技术呼风唤雨的意思,呼风唤雨的意思及成语故事呼风唤雨 拼音呼风唤雨的意思:hū fēng huàn yǔ
    近义词:兴风作浪、推波助澜、兴妖作怪
    反义词:息事宁人
    用法:联合式;作谓语、宾语、定语、状语;比喻具有非凡

    生活 2021年11月1日
  • Kubernates中如何从pod中拷贝文件到宿主机

    技术Kubernates中如何从pod中拷贝文件到宿主机本篇文章为大家展示了Kubernates中如何从pod中拷贝文件到宿主机,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年10月21日
  • python中dict用法(python里面dict的作用)

    技术怎么解析Python中的Dict这篇文章将为大家详细讲解有关怎么解析Python中的Dict,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是dict?dict全称

    攻略 2021年12月16日
  • mysql数据库数据表的基本操作(mysql数据库中怎么创建数据表)

    技术MySQL如何创建数据库和创建数据表本篇内容介绍了“MySQL如何创建数据库和创建数据表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年12月23日
  • c语言如何查询结构体中的数据(数据结构的链表怎么连接c语言)

    技术如何进行数据结构C语言链表的实现这篇文章将为大家详细讲解有关如何进行数据结构C语言链表的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言需要用到的函数库#inc

    攻略 2021年12月18日