用Python可视化18万条《八佰》影评,看看观众怎么说?

本文作者使用Python采集并分析了《八佰》18万条观众影评,通过数据清洗和可视化,揭示了观众的评论热点。主要发现包括:评论词云中出现大量情感强烈的词汇,如震撼、感人;90%以上的好评为其高票房背书;差评主要针对结局;成都观众评论最活跃;欧豪和端午的角色受到较多提及。
摘要由CSDN通过智能技术生成

在这里插入图片描述
大家好,我是J哥。

最近《八佰》这部电影比较火,上映仅15天就已斩获22亿票房。对于沉寂了半年、影院上座率仍限定在50%的电影市场而言,这样的成绩出人意料。

从猫眼电影官网可以看到,《八佰》吸引了100万人的评论,获得了9.2分的高口碑。一向好奇的J哥产生了一些疑惑,这些人到底在评论些啥?哪些地方的人评论最多?针对不同演员角色的评论内容有什么不同?

在这里插入图片描述
于是,J哥用Python采集了《八佰》18万条观众影评并做可视化分析,数据采集区间为2020年8月21日9点至2020年8月30日24点。公众号后台回复八佰可获取本文完整数据集和代码。

数据获取

猫眼电影是简单的动态网页,数据格式为json,通过解析接口的方式即可轻松获取。如果您对动态网页爬虫感兴趣,可查看J哥往期原创文章《实战|Python轻松实现动态网页爬虫(附详细源码)》。本文不做赘述,仅提供核心代码:

def parse_page(html):
    try:
        data = json.loads(html)['cmts']  # 将str转换为json
        #print(data)
        comments = []
        for item in data:
            comment = {
   
                'id': item['id'],
                'nickName': item['nickName'],
                'cityName': item['cityName'] if 'cityName' in item else '',  # 处理cityName不存在的情况
                'content': item['content'].replace('\n', ' ', 10),  # 处理评论内容换行的情况
                'score': item['score'],
                'startTime': item['startTime']
            }
            comments.append(comment)
        return comments
    except Exception as e:
        pass

数据清洗

读取影评数据

import pandas as pd
import numpy as np
data=[]
with open('comments.txt', 'r',encoding='utf-8-sig') as f_input:
    for line in f_input:
        data.append(list(line.strip().split(',')))
data

转为DataFrame并添加列名

df = pd.DataFrame(data).iloc[:, 0:6]
df.columns = ['观众ID','观众昵称','城市','评论内容','评分','评论时间']

删除重复记录和缺失值

df = df.drop_duplicates()
df = df.dropna()

预览并保存

df.sample(5)
df.to_csv("八佰.csv",index=False,encoding="utf_8_sig")

在这里插入图片描述

数据可视化

导入相关库

import jieba
import re
import matplotlib.pyplot as plt 
from pyecharts.charts import *
from pyecharts import options as opts 
from pyecharts.globals import ThemeType  
import stylecloud
from I
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值