Python分析《奔跑吧》21307 条热评,看看大家都在吐槽些什么

前言

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

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

数据获取

腾讯视频评论要点击查看更多评论才能加载更多数据,很明显是一个动态网页,评论内容使用了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('/菜J学Python/腾讯评论/paonan.csv',names=['评论内容'])
df2 = pd.read_csv('/菜J学Python/腾讯评论/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) <= 20 else ('中评' if len(x) <=50 else '长评')
df['评论类型'] = df['评论内容'].map(cut)

提取演员关键词

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

tmp=[]
for i in df["评论内容"]:
    if "黑牛" in i:
        tmp.append("李晨")
    elif "杨颖" in i:
        tmp.append("杨颖")
    elif "沙溢" in i:
        tmp.
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值