• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

爬取180000条影评,分析电影《八佰》的30亿之路

python 搞java代码 3年前 (2022-05-21) 30次浏览 已收录 0个评论

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于小蚊子数据分析 ,作者小蚊子数据分析

 

最近《八佰》这部电影破30亿了,上映差不多2个月。对于沉寂了半年、影院上座率仍限定在50%的电影市场而言,这样的成绩出人意料。

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

 

数据获取

猫眼电影是简单的动态网页,数据格式为json,通过解析接口的方式即可轻松获取。

<code><span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">parse_page<span class="hljs-params">(html):
    <span class="hljs-keyword">try:
        data = json.loads(html)[<span class="hljs-string">"cmts"]  <span class="hljs-comment"># 将str转换为json
        <span class="hljs-comment">#print(data)
        comments = []
        <span class="hljs-keyword">for item <span class="hljs-keyword">in data:
            comment = {
                <span class="hljs-string">"id": item[<span class="hljs-string">"id"],
                <span class="hljs-string">"nickName": item[<span class="hljs-string">"nickName"],
                <span class="hljs-string">"cityName": item[<span class="hljs-string">"cityName"] <span class="hljs-keyword">if <span class="hljs-string">"cityName" <span class="hljs-keyword">in item <span class="hljs-keyword">else <span class="hljs-string">"",  <span class="hljs-comment"># 处理cityName不存在的情况
                <span class="hljs-string">"content": item[<span class="hljs-string">"content"].replace(<span class="hljs-string">"
", <span class="hljs-string">" ", <span class="hljs-number">10),  <span class="hljs-comment"># 处理评论内容换行的情况
                <span class="hljs-string">"score": item[<span class="hljs-string">"score"],
                <span class="hljs-string">"startTime": item[<span class="hljs-string">"startTime"]
            }
            comments.append(comment)
        <span class="hljs-keyword">return comments
    <span class="hljs-keyword">except Exception <span class="hljs-keyword">as e:
        <span class="hljs-keyword">pass</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

www#gaodaima.com来源gao*daima.com搞@代#码网搞代码

 

数据清洗

读取影评数据

<code><span class="hljs-keyword">import pandas <span class="hljs-keyword">as pd
<span class="hljs-keyword">import numpy <span class="hljs-keyword">as np
<span class="hljs-keyword">data=[]
with <span class="hljs-keyword">open(<span class="hljs-string">"comments.txt", <span class="hljs-string">"r",encoding=<span class="hljs-string">"utf-8-sig") <span class="hljs-keyword">as f_input:
    <span class="hljs-keyword">for line <span class="hljs-keyword">in f_input:
        <span class="hljs-keyword">data.append(list(line.strip().split(<span class="hljs-string">",")))
<span class="hljs-keyword">data</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

转为DataFrame并添加列名

<code><span class="hljs-attr">df = pd.DataFrame(data).iloc[:, <span class="hljs-number">0:<span class="hljs-number">6]
<span class="hljs-attr">df.columns = [<span class="hljs-string">"观众ID",<span class="hljs-string">"观众昵称",<span class="hljs-string">"城市",<span class="hljs-string">"评论内容",<span class="hljs-string">"评分",<span class="hljs-string">"评论时间"]</span></span></span></span></span></span></span></span></span></span></code>

删除重复记录和缺失值

<code><span class="hljs-attr">df = df.drop_duplicates()
<span class="hljs-attr">df = df.dropna()</span></span></code>

预览并保存

<code><span class="hljs-selector-tag">df<span class="hljs-selector-class">.sample(<span class="hljs-number">5)
<span class="hljs-selector-tag">df<span class="hljs-selector-class">.to_csv(<span class="hljs-string">"八佰.csv",index=False,encoding=<span class="hljs-string">"utf_8_sig")</span></span></span></span></span></span></span></code>

 

整体评论词云

 

对18万条影评内容进行分词,并将频率最高的500个词抽离出来制作词云图,我们发现广大观众对《八佰》这部战争题材电影表现出强烈的情感。除了好看、不错这些赞美之词以外,更多的是震撼、感人、历史、勿忘国耻等代表着强烈民族色彩的词。

评论类型分布

 

超过90%的好评率,20亿+的票房不是没有道理。

差评抽样

 

差评虽不多,但集中在对《八佰》结局的轰炸。

评论数据量TOP10城市

 

成都人对《八佰》评论热情高涨,超过北上广深等大城市。

相关演员提及

 

观众评论中提及欧豪和端午的次数最多,不知是因为演技还是颜值?

关于端午的评论

 

 

关于老算盘的评论

 

 

关于羊拐的评论


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:爬取180000条影评,分析电影《八佰》的30亿之路

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址