中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何爬取騰訊視頻跑男的評論并做簡單文本的可視化分析

發布時間:2021-10-26 10:20:57 來源:億速云 閱讀:270 作者:柒染 欄目:大數據

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 += 1

if __name__ == '__main__':
    main()

數據處理

導入相關包

import jieba
import re
import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt 
from pyecharts.charts import *
from pyecharts import options as opts 
from pyecharts.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)

數據預覽

查看數據信息

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}:aegqsqibtmh%",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()

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如何爬取騰訊視頻跑男的評論并做簡單文本的可視化分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汕尾市| 鄂伦春自治旗| 望城县| 东方市| 义马市| 兴仁县| 蛟河市| 开封市| 百色市| 蓬溪县| 陆良县| 铜鼓县| 临海市| 健康| 大方县| 余江县| 巴楚县| 丰台区| 沈阳市| 福鼎市| 遵义市| 玛曲县| 五峰| 文成县| 洞头县| 胶州市| 涟水县| 大悟县| 商城县| 池州市| 荆门市| 福清市| 顺平县| 镇康县| 宣城市| 宁河县| 南丹县| 齐齐哈尔市| 梨树县| 班戈县| 双城市|