美文网首页Python
python爬取了《哪吒》14万影评,最后的分析结果是这个!

python爬取了《哪吒》14万影评,最后的分析结果是这个!

作者: 小张Python | 来源:发表于2019-08-19 23:22 被阅读0次

    《哪吒》逼逼叨

    《哪吒之魔童降世》作为暑假档的黑马,给了我们太多的惊喜;从点映之前知名度、宣传度几乎全为零的状态,凭借着自己燃爆的口碑自上映起,票房从5亿突破到10亿、一路上升到20亿、30亿,直到目前的37亿,位居国内影史票房总榜第四,国产动漫影片第一。

    《哪吒》跟电影中想要映射的主题一样:我命由我不由天。 在宣传期间,一部知名度极低、不具有任何流量特征的电影, 自上映起的21天内,连续20天位居单日票房榜首,虽然离首映当天已经过去了大半个月,但影片的质量依然被网友所接受:猫眼9.7,淘票票9.5,豆瓣8.3,微博大v推荐率达到92%。

    凭借着如此强劲的票房势能,《哪吒》不出意外地获得了延期密匙,延长一个月的上映时间,欲誓要去突破50亿元大关。在暑假档中,与《哪吒》票房的 ==意外== 相比,是最近上映的《上海堡垒》,票房的走势可以说用 ==惨淡== 来形容都不为过。

    未映之前,在7月的微博电影榜中《上海堡垒》被网友评为第一,在官宣时,号称花费5年筹拍,斥资3.6亿制作,无论是大v还是流量明星纷纷表示支持;而上映之后却是票房持续走低,网友批评声愈发激烈,电影评分也从上映首日的4.2到后来的3.3,也被评价为“《流浪星球》给中国科幻打开了一扇门,而《上海堡垒》把这扇门给关上了”。

    对于这两部电影的不同结果,说明了能够用明星的流量来带动一部电影的票房的时代已经过去了,现在是无论请的咖位有多大,电影难看就是难看,不再是发个微博请点水军就能改变的事实(爱情公寓大电影就是个典型例子);这一届的观众有自己的想法、自己的审判标准;

    虽说随着年轻人的娱乐消费水平逐年增高,对于一些新上映的电影,人们也愿意去贡献自己的一份票房,但是导演、编剧如果还是依靠以往的老套路,拍电影的时候不在意它的好坏,只想通过上映之前发点微博,请娱乐圈里几位大咖宣传一下就想捞一笔的话,可能最后的结果会适得其反。

    影评爬取

    随着《哪吒》的热度的逐渐下降,为了对这部影片做一个简单的分析,就通过python对猫眼平台上的《哪吒》的网友基本评论信息进行了爬取,选择猫眼平台的原因,是上面的影评信息相对来说涵盖的比较全一点,例如:影评、网友地区、性别、打的分数都有涉及。

    爬取步骤

    第一步,按F12打开开发者模式,影评数据在猫眼平台上数据是以json形式存放在网页中的,并且需要利用Toggle device toolbar选项把设备转换成手机端才可以 在Network选项中看到数据的来源。

    第二步,左边评论页面在不停地向下拉的同时,右边的Network控制台会不断地刷新出新的链接,如下形式;

    ##

    http://m.maoyan.com/review/v2/comments.json?movieId=1211270&userId=-1&offset=15&limit=15&ts=1565994998606&type=3

    ##

    http://m.maoyan.com/review/v2/comments.json?movieId=1211270&userId=-1&offset=30&limit=15&ts=1565994998606&type=3

    上面中,可以很清晰地发现参数offset是控制影评页面的关键,每次只须要改变offset的偏移量即可(需要通过offset = limit乘上num 利用一个for循环来控制

    第三步,但是经过测试后发现offset最大偏移量为990构造的url才为有效值 ,一旦参数超过这个值得话就爬取得页面都会为空;而且改变ts值的话,爬虫又重新正常运作,有经验的朋友其实马上了解到 ts中的一串数字其实时是一个时间戳。

    在获取数据时,我们也能够获取每个影评的准确评论时间,这样我们可以先爬取上映当天某个时间端的影评信息,把这一页的最后一条数据的结束时间作为作为下一段时间的开始时间来构造请求url,最后实现所有数据的爬取;python库datetime可以帮助我们很方便地处理这种时间格式。

    ###input

    import datetime

    timestamp =1565994998606 ##处理毫秒级的时间戳

    dateArray = datetime.datetime.utcfromtimestamp(float(timestamp/1000))

    dateStyletime = dateArray.strftime('%Y-%m-%d %H:%M:%S')

    print(dateStyletime)

    ##output

    2019-08-16 22:36:38

    爬取思路基本分析完,接下来就是进行代码实现,因为这次爬取的数据量有点大,我就利用多协程的方法进行爬取,借助于aiohttp_requestsasyncio库,最后利用大概半个小时的时间爬取了14万条影评。

    数据可视化

    这里我从观众性别占比、地区分布、电影评分、时间段分布这几种情况来对《哪吒之魔童降世》做个简单的分析

    注:数据可视化主要利用了 highchartspyecharts两中python包

    首先,对参与评论的观众的性别占比分布做了一个简单的可视化:

    从图中可以见到那了解到,相对来说女性群体比男性群体要多一些,这里笔者推断一下,动漫电影相对对于女性群体来说更受欢迎;但是从未知性别占比来看,却有一大部分网友并不喜欢在个人信息中透露自己的性别,涉及到了隐私问题。

    下面是根据网友个人信息中的所在地区做了几个图表,前五张地图表示的是每个地区的含有的人数依次在480-600、360-480、240-360、120-240和0-120,最后一张地图对前几张图的总和网友分布(其中人口密度在600以上的并没有写入图表中);这几张图表可以让我们了解到:

    相对来说西北方跟西南方地区,影视娱乐消费占比较大的主要集中于沿海、南方地区;

    无论西南地区、西北还是东北,都提供人们可以观影娱乐的场所,但相对来说,基础设施较少;

    总的来观影人口密度排行:沿海 > 华南 > 华中 > 东北 > 西北 > 西南;

    随即又根据人口地区分布数量做了一个地区top20,排在前几位唯有一个城市让人意外,就是上海没有排在前3位,另几所城市作为一线或者准一线毫无意外排在了前几位;北京、深圳、成都、广州,top20剩下的几所城市像佛山、郑州、成春、重庆地区的影迷人口密度都差不多,都集中于1400上下幅度。

    上面的这张图表示的是某一天中24小时内发布评论数量分布,这里我以一个小时为时间段把一天24小时划分为0-1、1-2、2-3......;从图中可以了解到在在2-3、3-4两个时间段评论数量达到了顶峰,在5-6时间段达到最低值,随后大概在在7点之后评论数量处于稳定状态,一个小时大概3700左右的数量输出。

    这张评论时间分布图让我对猫眼的影评真实性持有怀疑的态度,因为在我看来这个曲线会存在很大的波动,但是除了0-7点,其它的时间段并没有出现太大的波动(几乎处于平稳状态),感觉不科学。

    以上两张图展示的是网友对于《哪吒》的评分情况,10分占据榜首占据11.5万条,9分的占1.1万条,而低分占比相对要少的多,总共加起来不足1万。这种情况对于热播电影来说就是这个占比趋势:高分占多数,极少数低分

    最后以一张词云图来结束这篇文章,用的是 wordArt 网站,其中好看; 很好看;不错;我命由我不由天;搞笑几个词占据榜首,总的来说,这部暑假档动漫给予观众不一样的 “哪吒”,让人有焕然一新的感觉, 受到网友的一直好评;也告诉了我们一个真理:在中国,好电影是不用愁票房的

    最后,文中涉及到的所有源码获取方式,关注微信公众号:Z先生点记,后台回复关键词:哪吒001即可

    相关文章

      网友评论

        本文标题:python爬取了《哪吒》14万影评,最后的分析结果是这个!

        本文链接:https://www.haomeiwen.com/subject/lvpysctx.html