目录

  • 前言
  • 分析
  • 具体步骤
    • 登录
    • 爬取与存储
    • 可视化分析
  • 结语

前言


  • 暑期档电影惨淡,但随着哪吒爆红开拓了新局面。这也是国产动画的首次爆红。在哪吒刚出,笔者以为最多10亿就算不错的了。没想过仅过了几天就破了10亿。接着头条又突破20亿--------目前11天27亿,势头增长依然很猛

那笔者就很好奇人们是怎么看待这一步电影的呢?

  • 哪吒?我想哪吒是陪伴过不少人成长的一部动画片吧,也是记忆中算得上最好看的动画片之一了。里面的哪吒、小猪熊、申公豹、石鸡娘娘令人历历在目。我们或许都被哪吒的敢打敢为、勇敢和天真所感动

分析

  • 对于这么一部爆红的动画电影。我想简单分析人们对哪吒动画电影的评价状况。那么就选择猫眼票房或者豆瓣的短评爬下来分析了。
  • step1:打开豆瓣主页哪吒短评的界面。F12打开调试点击页面下一页会发现有ajax数据交互。
  • step2:分析这个接口,发现无加密。返回的是json套html需要解析处理一下。用网页访问这个接口。但是你会发现一旦你访问页面靠后它就拒绝访问了。提示你要登录再访问。

  • step3:思路很清晰了。只需要登录—>访问接口爬取存储—>可视化分析即可

具体步骤

登录

  • 账密登录fidder抓包发现可以直接发送请求登录。大胆猜测没有cookie限制。登陆后即可访问接口!
  • 程序方面只需要根据参数进行模拟即可,登录完将cookie保存。后面的访问都带着这个cookie即可。

登录部分代码为:

import  requests
import urllib.parse
from http import cookiejarurl='https://accounts.douban.com/j/mobile/login/basic'
header={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Referer': 'https://accounts.douban.com/passport/login_popup?login_source=anony','Origin': 'https://accounts.douban.com','content-Type':'application/x-www-form-urlencoded','x-requested-with':'XMLHttpRequest','accept':'application/json','accept-encoding':'gzip, deflate, br','accept-language':'zh-CN,zh;q=0.9','connection': 'keep-alive','Host': 'accounts.douban.com'}
data={'ck':'','name':'','password':'','remember':'false','ticket':''
}##登录函数。post请求api。返回cookie。后面携带这个cookie访问接口
def login(username,password):global  datadata['name']=usernamedata['password']=passworddata=urllib.parse.urlencode(data)print(data)req=requests.post(url,headers=header,data=data,verify=False)cookies = requests.utils.dict_from_cookiejar(req.cookies)print(cookies)return cookies

爬取与存储

  • 通过api的规则拼凑,抓下来的数据。我们主要需要评价星,和评论语句
  • 使用Beautifulsoup进行dom解析。使用xldrxldw将数据写入excel文件中。一个页面20条。页面url增加直到出现异常为止停止。

    主要代码实现:
def getcomment(cookies):start=0w = xlwt.Workbook(encoding='ascii')ws = w.add_sheet('sheet1')index=1while True:##存入ws.write(hang,lie,value)try:url = 'https://movie.douban.com/subject/26794435/comments?start='+str(start)+'&limit=20&sort=new_score&status=P&comments_only=1'start+=20req = requests.get(url,cookies=cookies)res = req.json()res=res['html']soup = BeautifulSoup(res, 'lxml')node = soup.select('.comment-item')#print(node[0])for va in node:name = va.a.get('title')star = va.select_one('.comment-info').select('span')[1].get('class')[0][-2]comment = va.select_one('.short').textprint(name, star, comment)ws.write(index,0,index)ws.write(index, 1, name)ws.write(index, 2, star)ws.write(index, 3, comment)index+=1except Exception as  e:print(e)breakw.save('nezha.xls')

  • 对于爬取的结过一览

可视化分析

  • 我们要对评分进行统计、词频统计。还有就是生成词云展示。而对应的就是matplotlibWordCloud库。

评分统计:

  • 对于评分统计,使用数组将上面的1,2,3,4,5,五个分数段读取时候写入,根据数据画出饼状图分析即可。
  • 从上图也可以知道,对于评分,大部分还是分布在5分和4分的,占比分别为41.2%33.4%.而2分和1分时非常少!这足以说明这部片绝对不是烂片或者争议不是很大。一部片不可能满足所有人。存在不满意的都在三分但依然能够接受。所以从评分分布来看哪吒还是广受支持的!

词频统计:

  • 根据jieba分词。统计前面热词出现的次数。反应观众共鸣点
  • 可以看的出国产、大圣(大圣归来对比).这些热门话题直戳心头!

词云展示:

  • 相比词频,词云无法看到词语的准确数量,但是可以看的到更多词汇、人们的评价。笔者这里通过count()类(map)对分词结果进行词频统计。统计完的词频排序前300个词展示在2个词云上。这些词语的出现频率均大于10.所以还是有所参考价值额

  • 可以从词云简单分析出大家还是很满意的,充满浓浓封神色彩动画风格不屈的争斗国产的激动!在票房直逼30亿的情况下!我、要去看了。

代码

  • 顺便给出可视化分析部分代码:
import matplotlib.pyplot as plt
import matplotlib
import jieba
import xlwt
import xlrd
from wordcloud import WordCloud
import numpy as np
from collections import Counter
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
##获取分数的饼图。用数组获取1-5分出现的次数
def anylasescore(comment):score=[0,0,0,0,0,0]count=0for va in comment:try:score[int(va[2])]+=1count+=1except Exception as e:continueprint(score)label='1分','2分','3分','4分','5分'color = 'blue', 'orange', 'yellow', 'green', 'red'  # 各类别颜色size=[0,0,0,0,0]explode=[0,0,0,0,0]for i in range(1,5):size[i]=score[i]*100/countexplode[i]=score[i]/count/10pie = plt.pie(size, colors=color, explode=explode, labels=label, shadow=True, autopct='%1.1f%%')for font in pie[1]:font.set_size(8)for digit in pie[2]:digit.set_size(8)plt.axis('equal')plt.title(u'各个评分占比', fontsize=12)plt.legend(loc=0, bbox_to_anchor=(0.82, 1))  # 图例# 设置legend的字体大小leg = plt.gca().get_legend()ltext = leg.get_texts()plt.setp(ltext, fontsize=6)plt.savefig("score.png")# 显示图plt.show()
def getzhifang(map):##词频的直方图x=[]##词语y=[]##词语出现数量for k,v in map.most_common(15):x.append(k)y.append(v)Xi = np.array(x)Yi = np.array(y)x = np.arange(0, 15, 1)width = 0.6plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.figure(figsize=(8, 6))  ##指定图像比例: 8:6plt.bar(Xi, Yi, width, color='blue', label='热门词频统计', alpha=0.8,)plt.xlabel("词频")##标签plt.ylabel("次数")plt.show()return
def getciyun_most(map):##获取词云x = []y = []for k, v in map.most_common(300):##300个词云分2个词云x.append(k)y.append(v)xi=x[0:150]xi=' '.join(xi)print(xi)backgroud_Image = plt.imread('nezha.jpg')  # 如果需要个性化词云,哪吒背景图wc = WordCloud(background_color="white",width=1500, height=1200,#min_font_size=40,mask=backgroud_Image,font_path="simhei.ttf",max_font_size=150,  # 设置字体最大值random_state=50,  # 设置有多少种随机生成状态,即有多少种配色方案)  # 字体这里有个坑,一定要设这个参数。否则会显示一堆小方框wc.font_path="simhei.ttf"   # 黑体# wc.font_path="simhei.ttf"my_wordcloud = wc.generate(xi)plt.imshow(my_wordcloud)my_wordcloud.to_file("img.jpg")xi=' '.join(x[150:300])my_wordcloud = wc.generate(xi)my_wordcloud.to_file("img2.jpg")plt.axis("off")def anylaseword(comment):## 分词,去掉符号、换行等垃圾数据commnetstr=''c = Counter()low=Counter()index=0for va in comment:seg_list = jieba.cut(va[3],cut_all=False)index+=1for x in seg_list:if len(x) > 1 and x != '\r\n':try:c[x]+=1except:continuecommnetstr+=va[3]for (k, v) in c.most_common():if v<5:c.pop(k)continue#print(k,v)print(len(c),c)getzhifang(c)getciyun_most(c)#print(commnetstr)
def anylase():data = xlrd.open_workbook('nezha.xls')  # 打开xls文件table = data.sheets()[0]  # 打开第i张表comment = []for i in range(1, 500):comment.append(table.row_values(i))# print(comment)anylasescore(comment)anylaseword(comment)if __name__ == '__main__':anylase()

结语

  • 如果自己需要可以到github下载项目完整代码。当然,只需要更改部分即可同理分析其他电影。
  • 项目依然有不够完善地方,如影评,对不同评分的平均不同处理、其他不同角度如评论用户性别、地点等等等等,这里不做延申。
  • 如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流(关注一波十年少):bigsai 持续输出分享!

 

转载于:https://www.cnblogs.com/bigsai/p/11320428.html

哪吒票房逼近30亿,从豆瓣短评简单分析人们对哪吒的态度相关推荐

  1. python画哪吒_哪吒票房逼近30亿,python爬取哪吒短评分析

    目录 前言 分析 具体步骤 登录 爬取与存储 可视化分析 结语 前言 暑期档电影惨淡,但随着哪吒爆红开拓了新局面.这也是国产动画的首次爆红.在哪吒刚出,笔者以为最多10亿就算不错的了.没想过仅过了几天 ...

  2. 哪吒票房逼近40亿,用python爬取哪吒短评分析

    目录 前言 分析 具体步骤 登录 爬取与存储 可视化分析 结语 前言 暑期档电影惨淡,但随着哪吒爆红开拓了新局面.这也是国产动画的首次爆红.在哪吒刚出,笔者以为最多10亿就算不错的了.没想过仅过了几天 ...

  3. 哪吒票房破30亿,这部国漫,重刷N次,仍泪流满面……

    近日,国漫<哪吒>刷屏朋友圈,票房也将破30亿. 这让我想起4年前的国漫神片,<大圣归来>. <哪吒>的核心是反抗命运,是我命由我不由天. 而孙悟空,同样是反抗强权 ...

  4. 中国电影|嘉宝盘点近几年国内票房突破30亿的影片

    昨天,吴京的<长津湖成功登顶票房首位,超越了<战狼2>,真的是让人激动地一刻,让大家看到了国产电影突飞猛进的提升,电影产业的快速发展.其实近几年,国内电影产业的发展都在快速进步,今天 ...

  5. 风之语.惊闻周星驰电影票房超过30亿RMB

    风之语.惊闻周星驰电影<<美人鱼>>票房超过30亿RMB <美人鱼>为周星驰执导,由邓超.林允.罗志祥.张雨绮主演的一部融合浪漫与惊险的爱情大片.故事讲述的富豪轩少 ...

  6. 《哪吒》票房破25亿,我用AI分析了它20W+评论数据

    说起这个暑期档的动画片,非<哪吒之魔童降世>莫属了! 上映第 1 天:89分钟,中国动画最快破 1亿纪录. 上映第 2 天:中国影史首部单日票房破 2亿的动画电影. 上映第 4 天:中国影 ...

  7. ​春节档票房超30亿,互联网资本新旧势力赛跑

    来源|猎云网 编辑|王非 阿里.腾讯.美团,网易.B站.泡泡玛特出现在出品和联合出品方名单里. 2021年春节档正式拉开帷幕,有7部新影片在大年初一同台竞技. 观众的热情也让牛年首日票房达到了17.3 ...

  8. 春节档票房超30亿 互联网资本新旧势力赛跑

    本文转载自IT之家,2021 年春节档正式拉开帷幕,有 7 部新影片在大年初一同台竞技. 观众的热情也让牛年首日票房达到了 17.36 亿元,总出票量 3456.78 万张. 迟到一年的<唐人街 ...

  9. 《长津湖》短评简单分析

    前两天在豆瓣上爬取了一些<长津湖>电影的短评,今天就来简单分析一下. 本篇文章主要分析文字部分. 1.准备阶段 通过pip安装pandas.jieba.matplotlib.wordclo ...

最新文章

  1. Android应用程序的调试
  2. linux Makefile 中使用 shell命令
  3. SAFE: Similarity-Aware Multi-Modal Fake News Detection-学习笔记
  4. 花痴流口水颜文字_流口水可执行模型
  5. 在Grails战争中添加“精简” Groovy Web控制台
  6. 深度学习笔记(43) Siamese网络
  7. Python探索记(10)——字符串(下)
  8. 金融风控小白入门必学:审批策略分析岗面试常见问题
  9. 主板怎么开启csm_主板的Launch CSM的开启和关闭是什么作用?会有哪些影响?
  10. python+neo4j ,Dota2自走棋,小型知识图谱构建
  11. Python开发 之 Python3打包(windows/linux)详解
  12. 计算机英语原文件夹,常用文件夹英文解译
  13. Typecho炫彩鼠标插件:HoerMouse
  14. Dev c++ 怎么设置背景色
  15. 数据结构概述3 对称矩阵、树和二叉树
  16. 国产服务器飞腾/鲲鹏/龙芯下Linux(统信UOS、麒麟系统)下GB28181/Onvif/RTSP监控视频平台的部署操作
  17. 语音识别(ASR)技术优势都有哪些?
  18. 埃森哲杯上海大学春季赛暨金马五校赛题解汇总
  19. BERT: 理解上下文的语言模型
  20. 双目运算符和三目运算符的使用浅谈

热门文章

  1. redis发布订阅与集群
  2. 对酒当歌,孤寂之歌!
  3. 朋友问他是否该跳槽了?我是这么跟他说的
  4. Android 高级工程师面试(一)
  5. 3分钟用C语言教你写个‘浪漫烟花‘---特别漂亮
  6. 启动虚拟机异常(完整版)——如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则Intel VT-x处于禁用状态
  7. OpenGL 摄像机
  8. 第二章--图形图像处理技术——基础理论和基本工具的使用
  9. 一段代码——使用rdkit函数生成分子文件的3D构象
  10. ACM数论----秦九昭算法