佩奇扑街、外星人疯狂!Python 告诉你大年初二应该看哪部电影
作者 | 罗昭成
责编 | 唐小引
转载自 CSDN资讯(ID:CSDNnews)
引言
2019 年 1 月,《啥是佩奇》短片在互联网快速传播,各大社交平台形成刷屏之势。不到 24 小时,官博发出的视频已经收获 2800 万次观看,14 万次点赞,17 万次转发。
作为《小猪佩奇过大年》先导片,片中内容不仅引人深思,也把我们的视线拉了到春节档电影。在外工作一年,难得的几天闲暇时间,回到家里,陪陪父母,看看孩子。可以和父母一起去看看电影,重温一家人的温暖。
扎堆上映的一大波影片让我们眼花缭乱,在众多电影中,我们应该选择哪一步电影来看呢?下面,我们用数据来分析分析,看看其他人都在看啥电影,让我们从选择恐惧症中解放出来。
猫眼预售票房数据分析
和之前文章不同,本次爬取的电影都还没有上映,所以笔者将侧重点从评论数据,转移到了其他地方,来进行我们想要的数据分析。
首先我们先来看看,春节档的票房数据,打开猫眼专业版实时票房,我们可以看到某一天的票房数据。
此图截于大年三十晚,可以看到《飞驰人生》在大幅上升,已经赶超《流浪地球》
虽然能看到,但是要进行分析,还是不太方便,所以先把数据都抓取下来:
作者注:抓取分析数据截止时间为 2019-02-03 18:38:49,并非最新数据,可能存在误差。
使用 Chrome 的调试模式,在网络请求中可以看到获取实时数据的网络请求:
https://box.maoyan.com/promovie/api/box/second.json?beginDate=20190205
拿到接口,就可以很简单地将数据拿下来,并存储起来。
发送网络请求
Python 的 Request 库可以很方便地发送网络请求,代码如下:
def requestData(url, params):
session = requests.Session()
headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X)",
"Accept": "application/json",
"Connection": "keep-alive",
"Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6",
"Accept-Encoding": "gzip, deflate"
}
response = session.get(url, params=params, headers=headers)
if response.status_code == 200:
return response.text
return None
给定一个 URL 地址,和上行的参数,调用此方法,就可以模拟浏览器将数据拿回来。
存储数据到数据库中
Python 中还有一个 JSON 库,可以方便地解析 JSON。本文中,也是使用的它来进行的数据解析。因为数据抓取了很多天的预售票房数据,所以在存储的时候,使用 movieId 和 date 组合为每一条数据的唯一 ID。为方便后面处理数据,减少网络请求,所以将所有的原始数据保存起来。代码如下:
def saveItem(date, jsonStr):
dic = json.loads(jsonStr)["data"]
boxUnit = dic["totalBoxUnitInfo"]
dataList = dic["list"]
for item in dataList:
movieId = item["movieId"]
if item["releaseInfo"] == u"上映首日" or item["releaseInfo"] == u"上映2天" or item["releaseInfo"] == u"上映3天" :
insertPiaofangMovieInfo(
str(movieId) + "_" + date, date, movieId, item["movieName"],
item["boxRate"],item["boxInfo"],boxUnit ,item["showRate"],
item["showInfo"],item["avgSeatView"],item["avgShowView"]
)
在猫眼实时票房中,我们可以看到《疯狂的外星人》票房最高。但并不太能直观的感受到和其它几部电影的差距,可视化展示数据能够更加友好,这里使用了 pyechats 来进行数据渲染。看图说话:
在图中可以看到《疯狂的外星人》的票房要选高于其他电影,而截止 2 月 3 日晚,《流浪地球》与《飞驰人生》的票房相当(编者注:随后在除夕夜《飞驰人生》赶超)。前段时间刷屏的《小猪佩奇过大年》的票房数据落底,实在有点令人吃惊,看这个数据,佩奇再红,还是干不过熊大熊二。
图片来源:movie.douban.com
为了更好地给大家作参考,笔者还抓取了春节档电影的“想看”数据。
接口:http://m.maoyan.com/ajax/detailmovie?movieId=movieId
拿到这些数据,绘制了一个折线图:
综上我们可以看到,无论是实实在在的预售票房,还是众口热议的口碑上,《疯狂的外星人》都是实质名归的赢家,笔者也建议有时间的朋友去看看。
另一方面,周星驰的《新喜剧之王》的想看量在 319844,位于春节档的第三位。首日的数据票房却只有不到 6000W,难道是朋友们都还在上班,我们欠星爷的电影票还要继续欠着?
图片来源:movie.douban.com
史上最强春节档的评分对比
分析完上面的票房与观众想看的数据过后,猫眼中还有关于春节档节目的短评数据,用户也给了相应的评分。凭借对导演与演员的信任度,给出了相应的评分。
先将评论数据抓取到本地存储。
接口: http://m.maoyan.com/review/v2/comments.json
代码如下:
def saveComment(movieId, comment):
conn = sqlite3.connect('spring_festival.db')
conn.text_factory = str
cursor = conn.cursor()
ins = "insert into comments(id, movieId, content, gender, nick, score, original) values (?,?,?,?,?,?,?)"
v = (comment["id"], movieId,comment["content"], comment["gender"], comment["nick"], comment["score"], json.dumps(comment))
cursor.execute(ins, v)
cursor.close()
conn.commit()
conn.close()
评分图如下:
从上图我们可以明显地看出,春节档之中,观众朋友对《新喜剧之王》、《流浪地球》、《飞驰人生》、《廉政风云》、《熊出没-原始时代》明显有超高预期,而如《神探蒲松龄》、《小猪佩奇过大年》,观众对其预期明显比其他电影要低。很难想象,前不久的《啥是佩奇》掀起全民佩奇热,尤其今年还是佩奇年的时候,这股热潮并没有直接反应到佩奇的年度大戏中,而今年春节档唯一一部古装戏,且有成龙大哥坐镇的《神探蒲松龄》也并没有打动观众。
评论词云
最后,我们再以词云来综合看一下以上所有电影的评论关键词,除却“期待”之外,可以显著地看到“沈腾”、“黄渤”、“流浪地球”,这人心所向一定程度上是极大的认可,只不过比较让人疑惑的是,为什么风评不错的《流浪地球》,甚至一度有其(流浪地球)的出现“开启了中国科幻电影‘元年’,可以称得上是春节自救指南,带你流浪人生”这样非常高的赞誉之声,但为什么这一切没有直接体现在票房上?此外,对于春节而言,所求无非是阖家欢乐,无论看什么,最重要的,还是一起看的人。
谨以此文,祝所有程序员朋友新春大吉,阖家欢乐,幸福团圆!
(本文为 AI科技大本营转载文章,转载请联系作者。)
征稿推荐阅读:
你的红包狂欢夜,互联网巨头们的流量争夺战
程序员给银行植入病毒,分 1300 次盗取 718 万,被判 10 年半!
大厂必问的分布式究竟是什么鬼?
ProgPow:以太坊上浮世绘
这4门AI网课极具人气,逆天好评!(附代码+答疑)
给AI开发者的新年礼物,技术公开课大放送(附演讲PPT)
如何用最强模型BERT做NLP迁移学习?
“百练”成钢:NumPy 100练
点击“阅读原文”,打开CSDN APP 阅读更贴心!
相关文章:

【POCO】POCO学习总结(二)——配置选择
使用方法: configure {options} options总结 –help:打印帮助 –config< config_name> 使用给定配置,在poco-1.7.8p3-all/build/config目录下,可以在对应的配置文件中修改编译工具的路径和名字,编译时的选项等。 AIX Darw…

告别排队!用Python定时自动挂号和快捷查询化验报告
作者 | 阿文来源 | 程序人生(ID: coder_life)我什么要做这个事情去年单位体检查出问题来,经过穿刺手术确诊是个慢性肾脏病2期, IGA 肾病三期,可能大家对于这个病并不是很了解,但是另外一个词可能大家都听过…

【POCO】POCO学习总结(三)——交叉编译
最小功能编译 编译选项:–minimal :只构建XML, JSON, 工具 and 网络 1 修改配置文件 $ vi poco-1.7.8p3-all/build/config/ARM-Linux13 LINKMODE ? SHARED 14 TOOL ? arm-linux 15 POCO_TARGET_OSNAME Linux 16 POCO_TARGET_OSARCH ? armv7l 主要…

转:入侵网站必备-sql server
来源:http://www.bitscn.com/plus/view.php?aid28692 1.判断有无注入点 ; and 11 and 12 2.猜表一般的表的名称无非是admin adminuser user pass password 等.. and 0(select count(*) from *) and 0(select count(*) from admin) ---判断是否存在admin这张表 3.猜…

27.5. PROCEDURE ANALYSE()
数据列优化 SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]]) 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

Linux 日志管理(RHEL7)
日志管理系统和程序的日记本记录系统,程序运行中发生的各种事件通过查看日志,了解及排除故障信息安全控制的依据 内核及系统日志由系统服务rsyslog统一记录/管理日志消息采用文本格式主要记录事件发生的时间,主机,进程,内容常见的日志文件 /var/log/messages 记录内核消息…

汇聚6年思想变迁:知识图谱报告幻灯片大全
本文汇总了中文知识图谱计算会议CCKS报告合集,涵盖从2013年至2018年,共48篇,从中可以看出从Google 2012年推出知识图谱以来,中国学术界及工业界这6年来知识图谱的主流思想变迁。作者 | 刘焕勇来源 | CSDN博客编辑 | apddd项目介绍…

【POCO】POCO学习总结(四)——MinGW编译poco
在window下使用MinGW编译poco 使用MSYS 下载MSYS 官网介绍:http://www.mingw.org/wiki/Getting_Started 官网下载:https://jaist.dl.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe 安装 运行mingw-get-setup.exe,只选择…

辞职之后的思考--激励
本人曾拿过多次奖金,也曾与很多同事沟通过拿奖金的感觉,引发一些思考,这其实也是希望在以后有机会给别人发奖金时做参考之用。 并不是所有人都会有奖金,所以如果我没有奖金其实也没有什么关系,但是,我非…

【linux】串口编程(一)——配置串口
目前遇到的串口编程都是用于通信,很少作为终端显示。以前没有对串口编程做深入研究,本次以libmodbus源码中对串口的设置为例,详解总结串口编程时配置的属性(struct termios) 以libmodbus中_modbus_rtu_connect函数为例…

Playboy封面女郎、互联网第一夫人,程序员们的“钢铁审美”
整理 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 46 年前,《花花公子》(Playboy)的一期杂志封面女郎 Lenna,成为数万“钢铁直男”的梦中女神。然而,这位女性更为人所知的是她在计算机图像处理领…

开源实时日志分析ELK
开源实时日志分析ELK 2018-01-04 转自:开源实时日志分析ELK平台部署 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性…

【linux】串口编程(二)——非阻塞接收
项目中很少会使用阻塞接收,一般都是selectread监听模式来实现非阻塞接收。 使用selece时,需要处理一些异常情况的返回,比如:系统中断产生EINTR错误;超时错误ETIMEDOUT。 使用read时,需要处理读取时可能出现…

使用Photoshop制作网页模板
用图层组管理网页元素首先是在Photoshop中制作好网页的框架。网页中的元素有很多, 像Banner条、文本框、文字、版权、Logo、广告等。尽量把这些相对独立的元素放在不同的图层中,这样方便以后的再编辑。不过图层一多,就 显得很凌乱,…

赵本山:我的时代还没有结束 | Python告诉你
作者 | 丁彦军来源 | 恋习Python(ID: sldata2017)【AI科技大本营按】今年春晚的小品好看吗?没有了赵本山的春晚总觉得少了点什么,然而许久不登春晚舞台的本山大叔借着B站的东风证明了「你大爷还是你大爷」。最近很多人被“改革春…

038——VUE中组件之WEB开发中组件使用场景与定义组件的方式
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>组件之WEB开发中组件使用场景与定义组件的方式</title><script src"vue.js"></script> </head> <body> <…

IronPython系列:Composite Pattern及其实现
最近挺经常做鱼的。对于做鱼的步骤算是熟悉。以烤制为例,主要有三步:洗(Clean)、切(Cut)和烤(Bake)。烤鱼(Bake)又有两个小步:加热(Heat)和烤(Bak…

2019全球AI 100强,中国占独角兽半壁江山,但忧患暗存
整理 | apddd出品 | AI科技大本营(ID:rgznai100)日前,创投研究机构CB Insights发布了年度人工智能企业百强榜单——由100个最具前途的AI公司组成,它们从3000多个候选者中脱颖而出,其业务涵盖人工智能硬件、数据基础设施…

【linux】串口编程(三)——错误处理
一个程序的优劣,可以从多个角度来判断,错误处理就是其中之一。从代码中的错误处理部分,可以体现出一个程序员的水平和修养。 下面还是以libmodbus为例,总结下串口编程中的错误处理。 【1】基础 【1.1】modbus中错误处理有三种&a…

微服务实战之春云与刀客(三)—— 面向接口调用代码结构实例
2019独角兽企业重金招聘Python工程师标准>>> 概述 在上一篇中提到了spring cloud 面向接口调用的开发风格,这一篇会举一个简单的但完整的例子来说明整个代码结构。 代码已上传到 https://github.com/maruixiang/spring-cloud-demo/tree/master/demo1 代码…

如何创建复杂的机器学习项目?
翻译 | 光城责编 | 郭芮转载自CSDN(CSDNnews)scikit-learn提供最先进的机器学习算法。但是,这些算法不能直接用于原始数据。原始数据需要事先进行预处理。因此,除了机器学习算法之外,scikit-learn还提供了一套预处理方…

关闭vmware喇叭报警声
关闭vmware喇叭报警声 在vmware里面安装linux系统后,操作时经常使用tab键或使用VI时经常听到pc speaker突然叫一声,如果正当戴着耳机欣赏音乐,被这么一叫还要吓一跳。下面是解决办法:C:\Documents and Settings\All Users\Applica…

【ubuntu工具】Atom的简介及安装
Atom中文社区:https://atom-china.org/ 知乎atom:https://www.zhihu.com/question/22867204 Atom,是github用nodejs编写的一个编辑器 Atom安装步骤: sudo add-apt-repository ppa:webupd8team/atomsudo aptitude updatesudo a…

破解Win2008口令-ERD6.0
我们在日常使用计算机的过程中,大多都经历过由于忘记口令从而无法进入系统的遭遇。遇到这种问题该如何处理呢?很多朋友一定想到了形形的口令破解工具,这些工具中名气最大的就是ERD Commander Boot CD。 ERD Commander Boot CD是一张可以启动操…

【Qt】Qt5.9.0: error: GL/gl.h: 没有那个文件或目录
重新安装ubuntu,在编译Qt时报错: /home/Qt5.9.0/Examples/Qt-5.9/widgets/widgets/calculator/button.cpp:51: from …/calculator/button.cpp:51: /home/Qt5.9.0/5.9/gcc_64/include/QtGui/qopengl.h:139: error: GL/gl.h: 没有那个文件或目录 解决方…

给Chrome“捉虫”16000个,Google开源bug自检工具
整理 | 一一出品 | AI科技大本营(ID:rgznai100) 在内部开发和使用八年之久,近日,Google 宣布开源 bug 自动化检测工具 ClusterFuzz。ClusterFuzz 是一款提供端到端的自动化模糊测试工具:从错误检测到分类排查&…

小巧的日志记录组件 - 开源研究系列文章
今天给大家带来一个小巧的日志记录组件LogHelper。这个组件是由Log4Net这个组件的由来而来的,不过只是写入.txt文本文件而已。如果能够对大家的项目有帮助那就更好了。 首先,打开.SLN解决方案,添加引用日志组件。 然后,先对日志组…

.NET开发人员值得关注的七个开源项目
微软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的依赖正日益增强,本文就为所有.NET开发人员介绍7个应该关注的开源项目…

SystemTap了解
SystemTrap是监控和跟踪运行中的Linux内核操作的动态方法。 http://www.ibm.com/developerworks/cn/linux/l-systemtap/ 使用SystemTrap需要使用trap来运行一个stp脚本 如何安装: Centos下直接yum install systemtrap就行了 测试是否可以运行 运行:stap …

Windows 95被做成了App,可玩扫雷和纸牌
6 秒重温 Windows95 开机画面 作者 | 琥珀 出品 | AI科技大本营(ID:rgznai100) “看到 Win95,再看到仙剑 DOS 的画面,突然有种想哭的感觉,小时候帮李逍遥实现了仗剑江湖的愿望,但自己却没有实现自己的愿望…