佩奇扑街、外星人疯狂!Python 告诉你大年初一应该看哪部电影

本文主要是介绍佩奇扑街、外星人疯狂!Python 告诉你大年初一应该看哪部电影,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者 | 罗昭成
责编 | 唐小引
本文首发于 CSDN 微信(ID:CSDNnews)

1. 引言

2019 年 1 月,《啥是佩奇》短片在互联网快速传播,各大社交平台形成刷屏之势。不到 24 小时,官博发出的视频已经收获 2800 万次观看,14 万次点赞,17 万次转发。

作为《小猪佩奇过大年》先导片,片中内容不仅引人深思,也把我们的视线拉了到春节档电影。在外工作一年,难得的几天闲暇时间,回到家里,陪陪父母,看看孩子。可以和父母一起去看看电影,重温一家人的温暖。

扎堆上映的一大波影片让我们眼花缭乱,在众多电影中,我们应该选择哪一步电影来看呢?下面,我们用数据来分析分析,看看其他人都在看啥电影,让我们从选择恐惧症中解放出来。

2. 猫眼预售票房数据分析

和之前文章不同,本次爬取的电影都还没有上映,所以笔者将侧重点从评论数据,转移到了其他地方,来进行我们想要的数据分析。

首先我们先来看看,春节档的票房数据,打开猫眼专业版实时票房,我们可以看到某一天的票房数据。
在这里插入图片描述

此图截于大年三十晚,可以看到《飞驰人生》在大幅上升,已经赶超《流浪地球》

虽然能看到,但是要进行分析,还是不太方便,所以先把数据都抓取下来:

作者注:抓取分析数据截止时间为 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.textreturn 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 日晚,《流浪地球》与《飞驰人生》的票房相当(编者注:随后在除夕夜《飞驰人生》赶超)。前段时间刷屏的《小猪佩奇过大年》的票房数据落底,实在有点令人吃惊,看这个数据,佩奇再红,还是干不过熊大熊二
在这里插入图片描述
为了更好地给大家作参考,笔者还抓取了春节档电影的“想看”数据。

接口:http://m.maoyan.com/ajax/detailmovie?movieId=movieId

拿到这些数据,绘制了一个折线图:
在这里插入图片描述
综上我们可以看到,无论是实实在在的预售票房,还是众口热议的口碑上,《疯狂的外星人》都是实质名归的赢家,笔者也建议有时间的朋友去看看。

另一方面,周星驰的《新喜剧之王》的想看量在 319844,位于春节档的第三位。首日的数据票房却只有不到 6000W,难道是朋友们都还在上班,我们欠星爷的电影票还要继续欠着?
在这里插入图片描述

3. 史上最强春节档的评分对比

分析完上面的票房与观众想看的数据过后,猫眼中还有关于春节档节目的短评数据,用户也给了相应的评分。凭借对导演与演员的信任度,给出了相应的评分。

先将评论数据抓取到本地存储。

接口: http://m.maoyan.com/review/v2/comments.json

代码如下:

def saveComment(movieId, comment):conn = sqlite3.connect('spring_festival.db')conn.text_factory = strcursor = 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()

评分图如下:
在这里插入图片描述
从上图我们可以明显地看出,春节档之中,观众朋友对《新喜剧之王》、《流浪地球》、《飞驰人生》、《廉政风云》、《熊出没-原始时代》明显有超高预期,而如《神探蒲松龄》、《小猪佩奇过大年》,观众对其预期明显比其他电影要低。很难想象,前不久的《啥是佩奇》掀起全民佩奇热,尤其今年还是佩奇年的时候,这股热潮并没有直接反应到佩奇的年度大戏中,而今年春节档唯一一部古装戏,且有成龙大哥坐镇的《神探蒲松龄》也并没有打动观众。

评论词云

在这里插入图片描述
最后,我们再以词云来综合看一下以上所有电影的评论关键词,除却“期待”之外,可以显著地看到“沈腾”、“黄渤”、“流浪地球”,这人心所向一定程度上是极大的认可,只不过比较让人疑惑的是,为什么风评不错的《流浪地球》,甚至一度有其(流浪地球)的出现“开启了中国科幻电影‘元年’,可以称得上是春节自救指南,带你流浪人生”这样非常高的赞誉之声,但为什么这一切没有直接体现在票房上?此外,对于春节而言,所求无非是阖家欢乐,无论看什么,最重要的,还是一起看的人。

谨以此文,祝所有程序员朋友新春大吉,阖家欢乐,幸福团圆!

这篇关于佩奇扑街、外星人疯狂!Python 告诉你大年初一应该看哪部电影的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/250810

相关文章

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

Python中多线程和多进程的基本用法详解

《Python中多线程和多进程的基本用法详解》这篇文章介绍了Python中多线程和多进程的相关知识,包括并发编程的优势,多线程和多进程的概念、适用场景、示例代码,线程池和进程池的使用,以及如何选择合适... 目录引言一、并发编程的主要优势二、python的多线程(Threading)1. 什么是多线程?2.

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Python自动化Office文档处理全攻略

《Python自动化Office文档处理全攻略》在日常办公中,处理Word、Excel和PDF等Office文档是再常见不过的任务,手动操作这些文档不仅耗时耗力,还容易出错,幸运的是,Python提供... 目录一、自动化处理Word文档1. 安装python-docx库2. 读取Word文档内容3. 修改

Python重命名文件并移动到对应文件夹

《Python重命名文件并移动到对应文件夹》在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求,下面我们就来看看如何使用Python实现重命名文件并移动到对应文件夹吧... 目录检查并删除空文件夹1. 基本需求2. 实现代码解析3. 代码解释4. 代码执行结果5. 总结方法补充在

Python自动化办公之合并多个Excel

《Python自动化办公之合并多个Excel》在日常的办公自动化工作中,尤其是处理大量数据时,合并多个Excel表格是一个常见且繁琐的任务,下面小编就来为大家介绍一下如何使用Python轻松实现合... 目录为什么选择 python 自动化目标使用 Python 合并多个 Excel 文件安装所需库示例代码