使用Python编程分析火爆全网的鱿鱼游戏豆瓣影评

目录
  • 技术工具
  • 数据采集
  • 数据可视化
  • 垂直布局
  • 水平布局
  • 词云可视化
  • 小结

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

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

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

技术工具

在正文开始之前,先介绍下本篇文章中用到的技术栈和工具。

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

  • 语言:Python,Vue ,javascript;
  • 存储:MongoDB;
  • 库:echarts ,Pymongo,WordArt…
  • 软件:Photoshop;

数据采集

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

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

图1

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

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

图2

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

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

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

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

图3

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

数据可视化

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

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

图4

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

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

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

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

图5

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

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

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

垂直布局

图6

水平布局

图7

词云可视化

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

图8

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

图9

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

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

图10

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

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

小结

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

如果内容对你有所帮助的话,欢迎读者朋友们将文章 分享 给更多的人!

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

更多关于Python分析豆瓣影评的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python爬虫实战:分析《战狼2》豆瓣影评

    刚接触python不久,做一个小项目来练练手.前几天看了<战狼2>,发现它在最新上映的电影里面是排行第一的,如下图所示.准备把豆瓣上对它的影评做一个分析. 目标总览 主要做了三件事: 抓取网页数据 清理数据 用词云进行展示 使用的python版本是3.5. 一.抓取网页数据 第一步要对网页进行访问,python中使用的是urllib库.代码如下: from urllib import request resp = request.urlopen('https://movie.douban.co

  • 详解如何用Python登录豆瓣并爬取影评

    目录 一.需求背景 二.功能描述 三.技术方案 四.登录豆瓣 1.分析豆瓣登录接口 2.代码实现登录豆瓣 3.保存会话状态 4.这个Session对象是我们常说的session吗? 五.爬取影评 1.分析豆瓣影评接口 2.爬取一条影评数据 3.影评内容提取 4.批量爬取 六.分析影评 1.使用结巴分词 七.总结 上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化

  • Python多线程爬取豆瓣影评API接口

    爬虫库 使用简单的requests库,这是一个阻塞的库,速度比较慢. 解析使用XPATH表达式 总体采用类的形式 多线程 使用concurrent.future并发模块,建立线程池,把future对象扔进去执行即可实现并发爬取效果 数据存储 使用Python ORM sqlalchemy保存到数据库,也可以使用自带的csv模块存在CSV中. API接口 因为API接口存在数据保护情况,一个电影的每一个分类只能抓取前25页,全部评论.好评.中评.差评所有分类能爬100页,每页有20个数据,即最多为

  • Python机器学习NLP自然语言处理基本操作电影影评分析

    目录 概述 RNN 权重共享 计算过程 LSTM 阶段 代码 预处理 主函数 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. RNN RNN (Recurrent Neural Network), 即循环神经网络. RNN 相较于 CNN, 可以帮助我们更好的处理序列信息, 挖掘前后信息之间的联系. 对于 NLP 这类的任务, 语料的前后概率有极大的联系. 比如: "明天天气真好&

  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    一.说明 本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论. 运行环境:Win10/Python3.5. 分析工具:jieba.wordcloud.pyecharts.matplotlib. 基本流程:下载内容 ---> 分析获取关键数据 ---> 保存本地文件 ---> 分析本地文件制作图表 注意:本文所有图文和源码仅供学习,请勿他用,转发请注明出处! 本文主要参考:https://mp.weixin.qq.com/s/mTxxkwRZPgBiKC3Sv-

  • 使用Python抓取豆瓣影评数据的方法

    抓取豆瓣影评评分 正常的抓取 分析请求的url https://movie.douban.com/subject/26322642/comments?start=20&limit=20&sort=new_score&status=P&percent_type= 里面有用的也就是start和limit参数,我尝试过修改limit参数,但是没有效果,可以认为是默认的 start参数是用来设置从第几条数据开始查询的 设计查询列表,发现页面中有url中的查询部分,且指向下一个页面

  • 使用Python编程分析火爆全网的鱿鱼游戏豆瓣影评

    目录 技术工具 数据采集 数据可视化 垂直布局 水平布局 词云可视化 小结 Hello,各位读者朋友们好啊,我是小张~ 这不国庆嘛,就把最近很火的一个韩剧<鱿鱼游戏>刷了下,这部剧整体剧情来说还是非常不错的,很值得一看, 作为一个技术博主,当然不能在这儿介绍这部剧的影评,毕竟自己在这方面不是专业的,最关键还是自己也写不出来 技术工具 在正文开始之前,先介绍下本篇文章中用到的技术栈和工具. 本文用到的技术栈和工具如下,归结为四个方面: 语言:Python,Vue ,javascript: 存储:

  • Python爬取哆啦A梦-伴我同行2豆瓣影评并生成词云图

    一.前言 通过这篇文章,你将会收货: ① 豆瓣电影数据的爬取: ② 手把手教你学会词云图的绘制: 二.豆瓣爬虫步骤 当然,豆瓣上面有很多其他的数据,值得我们爬取后做分析.但是本文我们仅仅爬取评论信息. 待爬取网址: https://movie.douban.com/subject/34913671/comments?status=P 由于只有一个字段,我们直接使用re正则表达式,解决该问题. 那些爬虫小白看过来,这又是一个你们练手的好机会. 下面直接为大家讲述爬虫步骤: # 1. 导入相关库,用

  • Python编程中的反模式实例分析

    本文实例讲述了Python编程中的反模式.分享给大家供大家参考.具体分析如下: Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务的首选:强大而活跃的社区,齐全的文档,也使很多编程的初学者选择了它作为自己的第一门编程语言.甚至有国外的报道称,Python已经成为了美国顶尖大学里最受欢迎的编程入门教学语言. 要学好一门编程语言实属不易,在初学阶段,就

  • Python编程实现从字典中提取子集的方法分析

    本文实例讲述了Python编程实现从字典中提取子集的方法.分享给大家供大家参考,具体如下: 首先我们会想到使用字典推导式(dictionary comprehension)来解决这个问题,例如以下场景: prices={'ACME':45.23,'APPLE':666,'IBM':343,'HPQ':33,'FB':10} #选出价格大于 200 的 gt200={key:value for key,value in prices.items() if value > 200} print(gt

  • Python编程中Python与GIL互斥锁关系作用分析

    我们知道,在 CPython 中,有一个全局解释器锁,英文叫 global interpreter lock,简称 GIL,是一个互斥锁,用来保护 Python 世界里的对象,防止同一时刻多个线程执行 Python 的字节码,从而确保线程安全,这导致了 Python 的线程无法利用多核 CPU 的优势,因此有人说 Python 的多线程是伪多线程,性能不高,那么 Python 将来有可能去除 GIL 吗? 要回答这个问题,先从 GIL 的起源进行分析. GIL 的起源 Python 第一次发布是

  • Python编程之字符串模板(Template)用法实例分析

    本文实例讲述了Python编程之字符串模板(Template)用法.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 字符串格式化操作符,需要程序员明确转换类型参数, 比如到底是转成字符串.整数还是其他什么类型. 新式的字符串模板的优势是不用去记住所有相关细节, 而是像shell风格的脚本语言里面那样使用美元符号($). 由于新式的字符串引进Template对象, Template对象有两个方法:substitute().safe_substitute(). substit

  • Python编程之变量赋值操作实例分析

    本文实例讲述了Python编程之变量赋值操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' Python中主要通过等号(=)进行赋值. Python中的赋值不是直接将一个值赋给一个变量, 而是将该对象的引用(并不是值)赋值给变量. ''' #赋值运算符 Int=12 Float=12.2 String="hello" List=[1,2,"hell"] Touple=(4,"hell") Dictionary={'one

  • python编程开发之日期操作实例分析

    本文实例讲述了python编程开发之日期操作.分享给大家供大家参考,具体如下: 在python中对日期进行操作的库有: import datetime import time 对日期格式化信息,可以参考官方API: time.strftime datetime 下面是我做的demo: #datetime import datetime #当前日期 now = datetime.datetime.now() print(now.strftime('%Y-%m-%d %H:%M:%S')) prin

  • python编程开发之类型转换convert实例分析

    本文实例讲述了python编程开发之类型转换convert.分享给大家供大家参考,具体如下: 在python的开发过程中,难免会遇到类型转换,这里给出常见的类型转换demo: int(x [,base ])         将x转换为一个整数    long(x [,base ])        将x转换为一个长整数    float(x )               将x转换到一个浮点数    complex(real [,imag ])  创建一个复数    str(x )        

随机推荐