《哪吒》VS《姜子牙》,用Python对比—我发现了这个......

B站排行榜数据可视化案例——python 复刻的一个小案例~~ 阅读详情

目录

前言

一、票房对比分析

    1.获取票房数据

    2.票房走势分析

二、评价对比分析

    1.爬取影评

        1.1获取评论页面

        1.2 解析页面中的评论

        1.3 定义爬取函数

        1.4 完整代码

    2.词云分析

        2.1 完整代码

        2.2 结果展示

前言

随着国内疫情得到有效控制,每个地区的电影院都陆陆续续的开放了,而很多本应该在春节档上映的电影因为疫情撤档,现在也重新上映了。

想必和不少小伙伴一样,我一直对《姜子牙》满怀期待。于是,国庆第2天我便杀入影院。而关于《姜子牙》的评价呈现了两极分化,而它也经常被拿来和去年上映的《哪吒》对比。关于电影本身,我不做过多评价,主要是从数据的角度出发,把《姜子牙》和《哪吒》进行一个对比分析。

一、票房对比分析

为了使得数据统一,我选取上映的前9日的票房数据(将持续更新):

注:票房数据来源于网络,不保证完全准确。将其存于本地excel表格中,命名为“票房数据.xlsx”。

2.票房走势分析

利用pandas库对票房数据进行分析,并绘制折线图:

import pandas as pd
import matplotlib.pyplot as plt

# 票房分析
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签    
data = pd.read_excel('票房数据.xlsx',index_col=0)
data.plot(style='.-.')
plt.title('票房数据')
plt.ylabel('票房(亿元)')
plt.xlabel('上映时间')
plt.savefig('票房数据.png')

结果如下:

从图可以看出(仅代表个人观点):

  • 1 首映当日《姜子牙》票房明显高于《哪吒》。这大概是源于观众的期待,这也说明前期的宣传工作做到位了;

  • 2 从走势来看,《姜子牙》呈现出明显下滑。这大概是因为上映后口碑上出现了两级分化,电影本身没有到达观众原本的期待;

  • 3 从走势来看,《哪吒》后续走势强劲有力。这大概是因为上映后《哪吒》作为国产动漫的代表口口相传,吸引了越来越多的观众。

二、评价对比分析

这一部分主要是对观众的影评进行分析,评价数据来源于某瓣。

1.爬取影评

在网站简单搜索之后可以发现一个电影短评的接口:

https://movie.douban.com/subject/26794435/comments?start=20&limit=20&status=P&sort=new_score

其中,26794435表示电影的编号l;start参数表示评论起始位置;limit表示每次请求的评论数。

1.1获取评论页面
def get_comment(mid,page):
    '''
    获得评论页面的HTML
    '''
    start = (page-1)*20
    url = 'https://movie.douban.com/subject/%s/comments?start=%d&limit=20&status=P&sort=new_score'%(mid,start)
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
               'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
               'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
               'Connection': 'keep-alive',
               'Upgrade-Insecure-Requests': '1'}
    cookies = {}
    res = requests.get(url,headers=headers,cookies=cookies)
    html = res.text
    return html
## 注意:请求需要带上登陆后的cookies,否则将只能获取10页的评论。
1.2 解析页面中的评论
def parse_comment(html):
    '''
    解析HTML中的评论
    '''
    comment = re.findall('<span class="short">(.*?)</span>',html)
    return comment
1.3 定义爬取函数
def crawl_comment(mid,N,name):
    '''
    爬取指定页数的评论,并保存在本地
    '''
    comments = []
    for p in range(1,N+1):
        html = get_comment(mid,p)
        comment = parse_comment(html)
        comments.extend(comment)
        print('《%s》第%d页评论爬取完成(%d条)'%(name,p,len(comment)))
        time.sleep(random.uniform(3,5))
    with open('%s.txt'%name,'w') as f:
        f.write(json.dumps(comments))

## 注意:time.sleep()很重要,否则请求过于频繁将触发安全机制,导致403
1.4 完整代码
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 10 12:01:35 2020

@author: kimol_love
"""
import re
import time
import json
import random
import requests

# 定义相关函数
def get_comment(mid,page):
    '''
    获得评论页面的HTML
    '''
    start = (page-1)*20
    url = 'https://movie.douban.com/subject/%s/comments?start=%d&limit=20&status=P&sort=new_score'%(mid,start)
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
               'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
               'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
               'Connection': 'keep-alive',
               'Upgrade-Insecure-Requests': '1'}
    cookies = {}
    res = requests.get(url,headers=headers,cookies=cookies)
    html = res.text
    return html

def parse_comment(html):
    '''
    解析HTML中的评论
    '''
    comment = re.findall('<span class="short">(.*?)</span>',html)
    return comment

def crawl_comment(mid,N,name):
    '''
    爬取指定页数的评论,并保存在本地
    '''
    comments = []
    for p in range(1,N+1):
        html = get_comment(mid,p)
        comment = parse_comment(html)
        comments.extend(comment)
        print('《%s》第%d页评论爬取完成(%d条)'%(name,p,len(comment)))
        time.sleep(random.uniform(3,5))
    with open('%s.txt'%name,'w') as f:
        f.write(json.dumps(comments))

# 爬取姜子牙评论
crawl_comment('25907124',25,'姜子牙')
    
# 爬取哪吒评论
crawl_comment('26794435',25,'哪吒')
2.词云分析

利用python的jieba库和wordcloud库对评论进行分析,绘制出词云。其中相应库的安装如下:

pip install jieba
pip install wordcloud
2.1 完整代码

先利用jieba对评论进行分词处理,再利用wordcloud对词频进行统计并绘制出词云。

# -*- coding: utf-8 -*-
"""
Created on Sat Oct 10 12:22:53 2020

@author: kimol_love
"""
import json
import jieba
from wordcloud import WordCloud

# 定义相关函数
def create_wordcloud(comments,name):
    '''
    根据评论列表创建词云
    '''
    content = ''.join(comments)
    wl = jieba.cut(content,cut_all=True)
    wl_space_split = ' '.join(wl)
    wc = WordCloud('simhei.ttf',
                   background_color='white', # 背景颜色
                   width=1000,
                   height=600,).generate(wl_space_split)
    wc.to_file('%s.png'%name)
 
# 词云数据分析
with open('姜子牙.txt','r') as f:
    comments_jiang = json.loads(f.read())
    create_wordcloud(comments_jiang,'姜子牙评论')
with open('哪吒.txt','r') as f:
    comments_ne = json.loads(f.read())
    create_wordcloud(comments_ne,'哪吒评论')
2.2 结果展示

《姜子牙》评论词云:

可以看出:在关于《姜子牙》的评论中,往往会伴随着与《哪吒》的比较。同时,其中的剧情、故事也是大家比较关注的一个问题。

《哪吒》评论词云:

可以看出:在关于《哪吒》的评论中,大家往往涉及到了国产、动画等关键词,而这也与大家对《哪吒》的主流定位不谋而合。

近期八大热门:

发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片!
盗墓热再起!我爬取了6万条《重启之极海听雷》的评论,发现了这些秘密
用Python一键生成炫酷九宫格图片,火了朋友圈
菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
Github获8300星!用Python开发的一个命令行的网易云音乐
一道Python面试题,硬是没憋出来,最后憋出一身汗!卧槽!Pdf转Word用Python轻松搞定!教你6招,不错的Python代码技巧!
程序员GitHub,现已正式上线!接下来我们将会在该公众号上,为大家分享GitHub上优质的开源神器,程序员圈的趣事,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!
点这里,领取一波福利!
Python爬虫抓取b站排行榜 1、什么是爬虫? 爬虫就是一个程序,模拟浏览器访问页面,并且把页面上的数据抓取下来的一个过程。 原理:爬虫就是用程序模拟浏览器的行为,发送请求给服务器,获取网页的内容,解析网页数据。 2、爬虫做了哪几件事情? a.发送请求:根据URL发送请求给服务器,获取HTML文本 requests类库来抓数据,去网络上拿东西回来,BeautifulSoup坐解析。 b.解析HTML文本,把需要的数据挑出来 c.从HTML中解析出超链接,继续爬取里面的页面 requests类库来抓数据,去网络上拿东西回来,Beautif 阅读详情

相关推荐

用python爬虫爬取B站排名靠前的番剧并存储到sql数据库

# -*- coding:utf-8 -*- from ssl import _create_unverified_context from json import loads from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui imp

yhyxzywl的博客 602

男程序猿与女程序媛的一天

来源:程序员最幽默(ID:humor1024)世界上只有三种人7:00am 起床9:20am 写代码10:30am 产品经理紧急召开会议11:30am 跟产品经理进行沟通14:30pm ...

cainiao_python的博客 512

Matlab2018a崩溃解决的办法No sandbox or build area path

Matlab 2018a (No sandbox or build area path)出现崩溃后需要使用terminal进行如下操作: cd /home/david/MySoft/MATLAB/R2018a/bin/glnxa64 (你的matlab路径) mkdir exclude mv libfreetype* exclude/ 执行后图片如下: 如果你用的Windows系统,请手动按照上面步骤剔除了dll。 Matlab 2018a (No sandbox or build are

David Xiao 1万+

微软开源模糊测试平台 OneFuzz

微软近日宣布将开源一款模糊测试工具,名为OneFuzz,可用于大规模查找和修复错误,有效降低软件的安全风险。它本身也是一个自托管的模糊测试即服务(Fuzzing-As-A-Service)平台。 模糊测试(fuzzing或称fuzz testing)是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃、断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。 模糊测试常常用于检测软件或计算机系统的安全漏洞。执行模糊测试,可以将漏洞发现转移...

寒冰屋的专栏 904

数电实训:万年历

万年历

Lmyccq的博客 1万+

HUAWEI华为荣耀MagicBook MateBook B D E X 13 14 16 笔记本MateStation台式机原装Win10出厂Windows11系统

HUAWEI华为MateBookX原装出厂系统恢复原厂系统,型号:MACHC-WAE9LP、EUL-W29P、MACHR-W19L、MACHR-W29、MACHD-WFE9、MRGF-16、MACHR-W19BL、MACHD-WFE9Q、WT-W19、Mach-W19、Mach-W29、WT-W09、WT-W19、MACH-W29等。HUAWEI华为MateBookE原装出厂系统恢复原厂系统,型号:PAK-AL09、GK-W7X、GK-G58、GK-W76、DRC-W76等。

QQ17855069的博客 17万+

OneFuzz:自托管的模糊测试服务平台

![Onefuzz Logo](docs/onefuzz_text.svg "OneFuzz") **:exclamation: 重要通知 :exclamation:** 微软的OneFuzz项目虽然已经决定在2023年9月30日存档,但其开放源代码的本质意味着你仍然可以在之后自由地fork和定制它以满足你的需求。 --- ## 项目简介 OneFuzz是一个由微软开源的模糊测试(fuz...

gitblog_00035的博客 410

【分布式系统学习】CAP原理详解

概述:互联网最重要任务莫过于海量数据处理,即大规模分布式系统,分布式是互联网的核心技术!!!如上所述,分布式系统是无法同时满足CAP三个特性的。1.Atomicity(原子性)一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个环节结束。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。2.Consistency(一致性)在事务开始之前和事务结束以后,数据库的完整性没有被破坏。3.Isolation(隔离性)

大龄烤红薯的博客 5025

stretchblt 模糊_微软开源持续开发模糊测试工具OneFuzz

点击蓝字关注我们近日,微软开源了OneFuzz——一个微软内部使用的,由开发人员驱动的持续开发模糊测试平台。开源后,世界各地的开发人员都可以通过OneFuzz直接从其开发系统接收模糊测试结果。模糊测试是一种自动化的软件测试技术,将随机、意外、畸形和/或无效数据输入计算机程序,试图发现可能影响程序安全性和性能的异常(例如崩溃、内存泄漏等)和意外行为。Azure驱动的持续开发模糊测试OneF...

weixin_39792747的博客 251

VMware Workstation Pro 16 安装 Ubuntu 20.04

VMware Workstation Pro 16 安装 ubuntu 20.04目录环境VMware Workstation下载Ubuntu 20.04下载安装过程 目录 环境 Windows 10 Workstation 16 Pro for Windows Ubuntu 20.04 LTS 64位 desktop版本 VMware Workstation下载 链接: https://www.vmware.com/products/workstation-pro/workstation-pro-eval

qq_45642410的博客 1万+

5、快速入门

点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。

leyoliu的博客 3505

python画哪吒_《哪吒》VS《姜子牙》,用Python对比—我发现了这个......

前言 随着国内疫情得到有效控制,每个地区的电影院都陆陆续续的开放了,而很多本应该在春节档上映的电影因为疫情撤档,现在也重新上映了。想必和不少小伙伴一样,我一直对《姜子牙》满怀期待。于是,国庆第2天我便杀入影院。而关于《姜子牙》的评价呈现了两极分化,而它也经常被拿来和去年上映的《哪吒》对比。关于电影本身,我不做过多评价,主要是从数据的角度出发,把《姜子牙》和《哪吒》进行一个对比分析。一、票房对比分析...

weixin_34363835的博客 971

abapGit 安装与初始化完整指南:从 on-premise 到 SAP BTP ABAP environment 的一条龙实践

本文为ABAP开发者提供abapGit从安装到团队协作的完整指南。内容涵盖社区版ZABAPGIT的on-premise安装、Eclipse ADT插件配置、BTP环境使用及常见网络问题处理。重点包括:获取最新构建的安装步骤、EN语言环境的重要性、ADT插件安装方法、以及如何实现on-premise与BTP间的代码迁移。文中特别强调企业环境下代理设置、证书配置等注意事项,并提供实际操作案例,如将RAP业务对象迁移到BTP环境。文末附有可复用的实施清单,帮助开发者快速落地abapGit。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 420

对微软开源的模糊测试平台OneFuzz的看法

上周微软开源了一款叫OneFuzz的模糊测试平台,主要是由开发团队驱动的可持续模糊测试平台,通过开发与集成项目对应的Fuzzer工具,在CI构建中持续Fuzz,自动化分析跟踪崩溃,告警通...

漏洞战争 2067

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 418

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

排行榜html源码_Python爬虫爬取B站排行榜数据

目录写在前文获取网页数据提取数据整合并保存数据运行结果点击此处,获取海量Python学习资料!写在前文在这篇博客中,我们将会从头开始实现完整的python简单爬虫项目。爬虫是一门高深的学问,这里说的简单爬虫是指获取的数据为静态网页数据,选择B站也是因为作者本身也是老二刺猿了,同时B站没有严格的反爬虫措施,适合新手的爬虫练手。由于本人第一次写博客,在编写的过程中难免会出现错误,如有发现错误或者不合理...

weixin_39967598的博客 1072

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python爬取b站排行榜

爬取b站排行榜并存到mysql中 目的 b站是我平时看得最多的一个网站,最近接到了一个爬虫的课设。首先要选择一个网站,并对其进行爬取,最后将该网站的数据存储并使其可视化。 网站的结构 目标网站:bilibili排行榜 bilibili排行榜的地址 网页的层次 首先要确定要提取的信息,也就是标题、播放量、作者up主、评分、播放量和评论量 在网页源代码中找到要找的信息 每个网页中大...

k17041114的博客 564

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...

从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是B站排行榜至于爬取什么内容,目前感觉就把序号,名称以及评分爬取下来吧(因为我是边写教程边写代码的)这次需要用到的知识:Requests模块Xpath模块(说白了就是Html)有看我的博客:www.lanol.cn首先来到这个页面https://www.bilibili.com/ranking/all/0/0/1,目前是全站榜,我们尝...

weixin_39595621的博客 857

python爬b站番剧_Python爬取B站动漫番剧更新信息,附代码和讲解过程

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。目标:爬取b站番剧最近更新输出格式:名字+播放量+简介那么开始撸吧~用到的类库:requests:网络请求pyquery:解析xml文档,像使用jquery一样简单哦~1.分析页面布局,找到需要爬取的内容目标url:https://bangumi.bilibili.com/22/ ...

weixin_42116681的博客 1292

Python项目实战案例:爬取b站番剧信息,让你不用错过

前言 相信很多人都是B站的粉丝吧?因为确实是一个类目都比较齐全的网站,还有各种各样的新番,这是其他网站没有的,我也追过一些新番,因为当时看漫画的时候觉得挺好看,就追了一段时间的新番,下面就来为大家介绍一个利...

colours2009的博客 671

python b站 排行_Python爬虫抓取B站小视频排行榜,新手也可以跟着做哦!

Python爬虫学到什么程度就可以去找工作了?有朋友在群里和大家讨论,问的最多的问题就是,python 爬虫学到什么程度可以去找工作了,关于这点,和大家分享下我的理解。看大牛用Python实现发送知乎私信功能学习知识点:- 面向对象编程- 读写文件操作- 网络请求的方式- 实现发送私信的功能- 可以实现批量发送私信的目的推荐下小编的Python学习群...Python大牛讲解爬虫入门,正则、保存文...

weixin_39623355的博客 229

Python练习:爬取B站排行榜数据

获取B站视频排行榜的一些数据,例如标题、UP主、分区、BV号、播放量、弹幕量、评论量、综合得分等 同时将视频封面保存到本地 import re import requests import os from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) url="https://www.b

耿鬼不会笑的博客 2431

python b站 排行_python爬取b站排行榜视频信息

1 import xlrd#读取excel2 import xlwt#写入excel3 importrequests4 importlinecache5 importwordcloud6 importjieba7 importmatplotlib.pyplot as plt8 from bs4 importBeautifulSoup910 if __name__=="__main__":11 ...

weixin_39973410的博客 260

Python 爬取b站热门视频信息并导入Excel表格

1.工先利其事必先利器,首先我们得下载相应的库: pip install requests pip install lxml pip install xlwt requests 向网页发送请求 lxml 处理xml文件(xpath) xlwt 对Excel做写入操作 2.爬取b站热门视频的信息:   打开b站热门视频页面:   按f12进入开发者选项,然后点击选中你要获取的页面信息,即可找到该...

qq_44204959的博客 1万+
上一篇: 良心推荐!GitHub 14400颗星!一个非常不错的机器学习指南!
下一篇: 如何优雅地给妹子优化电脑(Windows)?
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值