火爆全网的《鱿鱼游戏》,今天用 Python 分析一波影评

火爆全网的《鱿鱼游戏》,今天用 Python 分析一波影评

Hello,各位读者朋友们好啊,我是小张~

这不国庆嘛,就把最近很火的一个韩剧《鱿鱼游戏》刷了下,这部剧整体剧情来说还是非常不错的,很值得一看,

作为一个技术博主,当然不能在这儿介绍这部剧的影评,毕竟自己在这方面不是专业的,最关键还是自己也写不出来,,,

本文呢,主要是爬取《鱿鱼游戏》在豆瓣上的一些影评,对数据做一些简单的分析,用数据的角度重新审视下这部剧

技术工具

在正文开始之前,先介绍下本篇文章中用到的技术栈和工具。本文中涉及到的全部源码数据,在公众号【程序员大飞】后台回复关键字 211003 即可获取。

本文用到的技术栈和工具如下,归结为四个方面;

  • 语言:Python,Vue ,javascript;

  • 存储:MongoDB;

  • 库:echarts ,Pymongo,WordArt...

  • 软件:Photoshop;

数据采集

本次数据采集的目标网站为 豆瓣 ,但自己的账号之前被封,所以只能采集到大概二百来条数据,豆瓣有相应的反爬机制,浏览10页以上的评论需要用户登录才能进行下一步操作

至于为啥账号被封,是因为之前自己学爬虫时不知道在哪里搞的【豆瓣模拟登录】代码,当时不知道代码有没有问题,愣头青直接用自己的号试了下,谁知道刚试完就被封了,而且还是永久的那种

[图片上传失败...(image-4108c6-1633427749655)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">image-20211002125521303</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图1</center>

在这里也给大家提个醒在以后做爬虫时,模拟登录时尽量用一些测试账号,能不用自己的号就别用,

这次数据采集也比较简单,就是更改图2 中 url 上的 start 参数,以 offset 为 20 的规则 作为下一页 url 的拼接;

[图片上传失败...(image-3d7fe9-1633427749655)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">image-20211002130109452</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图2</center>

拿到 请求连接之后,用 requests 的 get 请求,再对获取到的 html 数据做个解析,就能获取到我们需要的数据了;采集核心代码贴在下方

<pre class="custom" data-tool="mdnice编辑器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`for offset in range(0,220,20):
url = "https://movie.douban.com/subject/34812928/comments?start={}&limit=20&status=P&sort=new_score".format(offset)
res = requests.get(url,headers= headers)
# print(res.text)
soup = BeautifulSoup(res.text,'lxml')
time.sleep(2)
for comment_item in soup.select("#comments > .comment-item"):
try:

        data_item = []
        avatar = comment_item.select(".avatar a img")[0].get("src")
        name = comment_item.select(".comment h3 .comment-info a")[0]
        rate = comment_item.select(".comment h3 .comment-info span:nth-child(3)")[0]
        date = comment_item.select(".comment h3 .comment-info span:nth-child(4)")[0]
        comment = comment_item.select(".comment .comment-content span")[0]
        # comment_item.get("div img").ge
        data_item.append(avatar)
        data_item.append(str(name.string).strip("\t"))
        data_item.append(str(rate.get("class")[0]).strip("allstar").strip('\t').strip("\n"))
        data_item.append(str(date.string).replace('\n','').strip('\t'))
        data_item.append(str(comment.string).strip("\t").strip("\n"))
        data_json ={
            'avatar':avatar,
            'name': str(name.string).strip("\t"),
            'rate': str(rate.get("class")[0]).strip("allstar").strip('\t').strip("\n"),
            'date' : str(date.string).replace('\n','').replace('\t','').strip(' '),
            'comment': str(comment.string).strip("\t").strip("\n")
        }
        if not (collection.find_one({'avatar':avatar})):
           print("data _json is {}".format(data_json))
           collection.insert_one(data_json)
        f.write('\t'.join(data_item))
        f.write("\n")
    except Exception as e:
        print(e)
        continue` </pre>

豆瓣爬取时需要记得加上 cookie 和 User-Agent,否则不会有数据为空,

为了后面数据可视化提取方便,本文用的是 Mongodb 作为数据存储,共有211 条数据,主要采集的数据字段为 avatarnameratedatecomment,分别表示用户头像、用户名字、星级、日期,评论;结果见图3

[图片上传失败...(image-4390f7-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">image-20211002130736309</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图3</center>

关于 Python 怎么使用 MongoDB,可以参考旧闻 【】

数据可视化

可视化部分之前打算用 Python + Pyecharts 来实现,但 Python 图表中的交互效果不是很好,索性就直接用原生 Echarts + Vue 组合来实现,而且,这样的话,将所有图表放在一个网页中也比较方便

首先是对评论时间与评论数量做了一个图表预览,根据这些数据的评论时间作为一个散点图分布,看一下用户评论主要的时间分布

[图片上传失败...(image-30db4c-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">动画11</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图4</center>

图4中点的大小和颜色代表当天评论数量,而评论数量也可以侧面反应该剧当天的热度。

可以 了解到,《鱿鱼游戏》影评从 9 月17 日开始增长,在 20 号数量达到顶峰,21 日回落;在21日-29日评论数量来回震荡,相差不大;

直到国庆 10月1日最少,猜测可能是一方面是国庆假期大家都出去玩的缘故,另一方面是随着时间推移,这个剧的热度也就降下来了

为了了解大家对《鱿鱼游戏》的评价,我对这二百条数据对这个剧的【评分星级】绘制了一个饼图,最终效果见 图5

[图片上传失败...(image-8c5e79-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">动画2</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图5</center>

说实话图5 的结果让我有些意外,至少对于我而言这部剧质量说实话还是蛮高的,绘图之前以为【五星】的占比应该是最大的,其次是【四星】,再然后是【三星】;

现在【三星】和【五星】的占比恰恰相反,猜测可能是这部剧的情节比较残忍,会引起人的不适,所以高分占比不高;

为了方便,最后我将上面两张图表放置在一个网页上,效果见图6图7 两种不同布局

垂直布局

[图片上传失败...(image-e4ace6-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">动画3</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图6</center>

水平布局

[图片上传失败...(image-f187d6-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">动画4</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图7</center>

词云可视化

本次采集的数据信息有限能分析的数据维度不多,关于数据图表方面的分析基本就到这里了,下面是对采集到的评论做了几张词云图

[图片上传失败...(image-3df2f3-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">mask1_workArt</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图8</center>

图8来看,去除现实中常用到的还是就是等口头语,人性 是影评中频率最高的一个词,而这个词确实符合《鱿鱼游戏》这部剧的主题,从第一集开始到结束都是在刨析人性,赌徒们的”贪婪、赌性成瘾“,贵宾们的”弱肉强食“

[图片上传失败...(image-bd3818-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">mask1_workArt1</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图9</center>

对比上张词云图,图9凸显的信息相对就多了些,例如韩国人设刺激剧情赌博默示录题材等都与剧情有关,除了这几个信息之外,李政宰孔刘李秉宪 等几个主演也被提到

最后,我将采集到的用户头像做了两张图片墙作为文章的结尾

[图片上传失败...(image-3877ae-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">mask1_wall</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图10</center>

[图片上传失败...(image-9bb38a-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">mask2_wall</figcaption>

<center style="color:rgba(0,0,0,0.6);" data-tool="mdnice编辑器">图11</center>

图10图11 照片墙的轮廓采用的是剧中的两个人物截图,一个是123木头人 ,另外一个是男一在玩游戏二的一个镜头:

[图片上传失败...(image-8bbefc-1633427749654)]

<figcaption style="margin-top: 5px; text-align: center; color: #888; font-size: 14px;">image-20211002171542736</figcaption>

关于照片墙制作方法,可参考旧闻:

小结

本文中涉及到的全部源码和资料获取方式:关注微信公号:【程序员大飞】,在后台回复关键字 211003 即可获取,

好了,以上就是本篇文章的全部内容了,本文分析到的东西并不多,主要是介绍了 Python 在数据采集和可视化方面的一些应用。

如果内容对你有所帮助的话,希望给文章 点个赞 鼓励一下我,当然也更欢迎读者朋友们将文章 分享 给更多的人!

最后感谢大家的阅读,我们下期见~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容