作者 | 朱小五

责编 | 郭   芮

今天给大家带来一个关于电影的数据分析文章。别走啊,这次不是豆瓣,也不是猫眼——真的,今天分析的电影是韩国电影《寄生虫》。

它是由韩国导演奉俊昊自编自导的影片,一举拿下最佳影片、最佳导演、最佳原创剧本和最佳国际电影四座奥斯卡奖杯,创造历史成为奥斯卡史上首部非英语最佳影片。

这次带大家看看韩国人如何评价这部韩国电影的?

获取数据

数据从哪获取呢?

我们先打开韩国最大门户网站NAVER:

找到영화(电影)板块,搜索기생충(寄生虫)并打开:

上面介绍部分跟猫眼专业版一样,各种评分、演职员表、评分男女比例、年龄分布。

在评论区部分,它其实有点像是豆瓣和猫眼的综合体,无论看没看过都可以评价打分,不过看过的会单独有个小标识。

我们下划到评论区,下图中可以看到,目前有36360条评价,我们想要获取的数据是黑框中的内容。包括每条留言的评论人昵称、评论时间、评分、评论内容以及这条评论得到的赞或踩。

下面开始爬取评论数据:

利用requests和pyquery爬取数据,展示部分源码,完整见文末。

def main():data = []for i in range(1,200):    #爬取多少页url = 'https://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=161967&type=after&onlyActualPointYn=N&onlySpoilerPointYn=N&order=newest&page='+str(i)print('准备采集第{}页数据'.format(i))html = restaurant(url)doc = pq(html)for i in range(0,10):print(i)dic = {}dic['star'] = doc('li:nth-child(' + str(i+1) +') > div.star_score > em').text()dic['text'] = doc('#_filtered_ment_' + str(i)).text()dic['datetime'] = doc('li:nth-child(' + str(i+1) +') > div.score_reple > dl > dt > em:nth-child(2)').text()dic['name'] = doc('li:nth-child(' + str(i+1) +') > div.score_reple > dl > dt > em:nth-child(1) > a').text()dic['zan'] = doc('li:nth-child(' + str(i+1) +') > div.btn_area > a._sympathyButton > strong').text()dic['cai'] = doc('li:nth-child(' + str(i+1) +') > div.btn_area > a._notSympathyButton > strong').text()data.append(dic)#time.sleep(random.random())pd.DataFrame(data).to_csv('寄生虫评论.csv',encoding="utf_8",index = False)return data

运行结果:

歪瑞古德!

这样我们就成功获取了韩国人评价韩国电影《寄生虫》的评论数据!

数据整理

我们简单看一下数据:

共35940条,比上文截图时候少了一点,这是因为我爬取和写这篇文章的时候有一点时间间隔,所以这个小问题请忽略。

另外,非常明显,评论字段缺失了很多。

我查看了一下,认为是在这个网站观看过电影的人可以只打分,不写评论。

(有点像在猫眼上买了电影票,评论时候同样可以只打分,不写评论)

简单补齐它吧,直接删除还是会影响整体的评分的。

def data_cleaning(df):cols = df.columnsfor col in cols:if df[col].dtype ==  'object':df[col].fillna('缺失数据', inplace = True)else:df[col].fillna(0, inplace = True)return(df)

这样我们就补全了缺失值。

简单看一下平均分吧:

看来这就是韩国观众的打分(9.07)比网民对《寄生虫》虫的评价(8.48)要高。

这与国内的情况也是相似的,同一部电影猫眼淘票票的分数普遍比豆瓣上要高。

毕竟真金白银去看电影的人,肯定会认为它是一部好片子才去看。

只要不像被《爱情公墓》一样诈骗,基本观众的分数不会太低。

后面想讲韩国网友的评论做一个词云,这样的话我们就需要先将评论中的韩文翻译成中文。

翻译评论

采用哪个翻译软件呢?

尝试了几个常见的翻译,发现结果都大同小异。

干脆采用了之前自己用过的有道翻译小接口。

def translate(text):url = 'http://fanyi.youdao.com/translate?&doctype=json&type=KR2ZH_CN&i='+ textrequ_text = requests.get(url)json_text = requ_text.json()data = json_text['translateResult'][0][0]['tgt']time.sleep(2+random.random())print('翻译中')return data

将评论列翻译,并新建一列用以做词云:

ata['text_t'] = data.apply(lambda x :translate(x['text']), axis=1)

运行结果:

额,这个翻译一言难尽,不过大体意思还是可以看懂的,不太影响做词云。

接下来我们开始尝试做做图。

分析与可视化

正常利用python分析电影评论都有一个环节是男女比例和评分比例,这次我们并没有获得相关数据,那么就用NAVER网站提供的结果图简单的讲一下吧。

观看人群的性别比例非常均衡,各占50%。

各年龄段均有分布,其中[20,30)的观看人群最多。为什么10-20岁的青少年观看这么少呢?后面词云部分会回答这个问题。

在上图普通网民的评价中,女性评分更高一些。随着年龄的增长,评分越低,难道是越是年龄大的人越看透了韩国的现状?

他们主要的欣赏点依次是“导演”、“연기”、“故事”、“视觉效果”、“电影原声”。

(其中的“연기”用翻译软件都是翻译成烟,难道是特效的意思?懂韩文的同学可以留言一下)

至于看过电影的观众打分比普通网民会高,平均9.07分,而且男性比女性要略高。其他方面大体相似,就不讲了。

我们再看一下,韩国观众对电影《寄生虫》评论数量的时间走势。

plt.figure(figsize=(8,5), dpi=200)
x = score_by_time.index.date
y = score_by_time.values
plt.plot(x,y,c="g",marker=".",ls="-")plt.title("韩国电影《寄生虫》评论数走势图")
plt.xlabel("月份")
plt.ylabel("评论数")

结果如下:

可以明显看到,评论数量在电影《寄生虫》上映后达到一个高峰,而后随着时间的推移,数量逐渐减少。

之后有两个小高峰,分别是2019年8月初和2020年2月初。

通过查找新闻信息,收集到了两个消息:

1、韩国电影《寄生虫》,预计将在8月6日公开流媒体服务(就相当于我国的爱奇艺、优酷类似的平台)。

2、《寄生虫》2月10日拿下四项奥斯卡大奖后,在韩国的热度继续上升。

这样大家应该就解释清楚两个小高峰的问题啦。

最后我们再利用有道翻译好的评论数据做个WordCloud词云吧:

在对主创人员的讨论中,奉俊昊导演的功力和宋康昊的杰出演技被多次提及,电影中提到的“气味”“果酱”“戒指”也被多次探讨,故事中对社会与现实的反思也是热门的讨论话题。

前文我提到了为什么10-20岁的青少年观看这么少呢?而且词云中“15”这个关键词也比较突出。

这是因为韩国于1998年建立电影分级制度。规定电影分为5个等级:全民、12岁以上、15岁以上、18岁以上可以观看和限制放映。

而《寄生虫》在韩国获得了“15岁以上可以观影”的等级判定。

对作品内容就不做评价了。

以上。

作者:朱小五,互联网公司数据分析师。热衷于Python爬虫,数据分析,可视化,个人公众号《凹凸玩数据》,有趣的不像个技术号~

声明:本文系作者投稿,版权归其所有。

【End】

《原力计划【第二季】- 学习力挑战》正式开始!
即日起至 3月21日,千万流量支持原创作者,更有专属【勋章】等你来挑战

推荐阅读 

☞谁说国产编译器没救了?这个 C/C++ 和 JavaScript 编译器来了 | 程序人生 2020

☞中国开发者真实画像:Java长盛,偏爱Windows操作系统,鲜少参与开源项目

☞用于小型图形挖掘研究的瑞士军刀:空手道俱乐部的图表学习Python库

☞罗永浩欲直播带货,京东说可以帮忙联系

☞MySQL数据库无完整备份删库,除了跑路还能怎么办?

☞Libra新编程语言 :Move 的所有权模型灵感来源原来是它……

你点的每一个在看,我认真当成了喜欢

用Python爬取3万多条评论,看韩国人如何评价电影《寄生虫》?相关推荐

  1. python爬取国家男女比例_用python爬取3万多条评论,看韩国人如何评价韩国电影《寄生虫》?...

    用python爬取3万多条评论,看韩国人如何评价韩国电影<寄生虫>? 朱小五 凹凸数据 大家好,我是朱小五 今天给大家带来一个关于电影的数据分析文章. 别走啊,这次不是豆瓣,也不是猫眼 真 ...

  2. python爬取3万+条评论,解读猫眼评分9.5的《海王》是否值得一看?

    海王 前言 2018年12月7日,本年度最后一部压轴大片<海王>如期上映,目前猫眼评分达到9.5分,靠着1.5亿美金的制作成本,以小博大,目前票房接近9亿,本文爬取了猫眼3w+条评论,多方 ...

  3. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!

    [CSDN 编者按]<哪吒>看哭了无数人!编者看的那场,有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下 ...

  4. 利用python爬取东方财富网股吧评论并进行情感分析(一)

    利用python爬取东方财富网股吧评论(一) python-东方财富网贴吧文本数据爬取 分享一下写论文时爬数据用到的代码,有什么问题或者改善的建议的话小伙伴们一起评论区讨论.涉及内容在前人的研究基础之 ...

  5. python 爬取亚马逊评论_用Python爬取了三大相亲软件评论区,结果...

    小三:怎么了小二?一副愁眉苦脸的样子. 小二:唉!这不是快过年了吗,家里又催相亲了 ... 小三:现在不是流行网恋吗,你可以试试相亲软件呀. 小二:这玩意靠谱吗? 小三:我也没用过,你自己看看软件评论 ...

  6. python爬取携程景区用户评论

    python爬取携程景区用户评论(爬虫时遇到翻页但url不变问题时的解决办法) python爬取携程景区用户评论 Ajax页面加载的页面和普通页面的不同 解决办法 效果 python爬取携程景区用户评 ...

  7. python 爬取携程旅游景点评论

    python爬取携程旅游景点评论 爬取网址:https://you.ctrip.com/ 爬取评论全部代码 import requests import json import re import t ...

  8. python爬取网抑云音乐评论

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.python爬取网抑云音乐评论 前言 提示:这里可以添加本文要记录的大概内容: python爬取网抑云音乐评论 提 ...

  9. 小牧用Python 爬取数万条房产数据,揭秘一线城市生存压力有多大

    最近各大一二线城市的房租都有上涨,究竟整体上涨到什么程度呢?我们也不得而知,于是乎笔者为了一探究竟,便用 Python 爬取了房某下的深圳租房数据.以下是本次的样本数据: 除去[不限]的数据(因为可能 ...

最新文章

  1. linux curl 命令 http请求、下载文件、ftp上传下载
  2. ARM9学习笔记之——MMU
  3. 44-当日交易总结。(2014.12.31)
  4. 如何搭建和使用 Xcode 开发环境
  5. TensorFlow下安装matplotlib模块
  6. java eden分配参数,JVM垃圾收集器与内存分配策略,
  7. python类中的 init_Python类中__init__()的作用
  8. session的创建方式
  9. Oracle数据库的下载安装教程
  10. Android应用开发——记事本
  11. 青青日记app界面原型
  12. 分布式事务之柔性事务
  13. AprilTag中的apriltag.c文件
  14. fiddler编程猫死活hook不到的解决办法之一
  15. Elasticsearch的DSL搜索
  16. Android 垂直与水平滚动条:Scrollview与HorizontalScrollView
  17. java socket解决半包、粘包问题
  18. httpCanary app抓包
  19. 1510 出纳员问题
  20. [Android]简易播放视频

热门文章

  1. 七. 多线程编程11.线程的挂起、恢复和终止
  2. Java——动态绑定和多态
  3. 《数据结构教程》(李春葆 主编)课后习题【练习题6】
  4. (uC/OS-II学习笔记) 消息邮箱消息队列
  5. 当你输入一个网址的时候,实际会发生什么?(转)
  6. 《Linux编程》学习笔记 ·003【Shell编程】
  7. Ubuntu 修改主机名
  8. 21. 栈的压入、弹出序列
  9. onenote设置默认新建页面颜色非白色
  10. Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found