相信很多人跟我一样都是比较喜欢看电影的,一部好的影视作品上映后,我们往往后参考豆瓣、猫眼等影片评论、打分数据来决定是否要去看;另一方面票房数据也是会辅助我们选择影片的一个重要方面。
在我之前的博客里面已经有很多于影评数据进行的文本数据分析相关的技术分享,这里今天想要做的就是基于Python实现一个票房数据的查询软件,为观影提供指南,实现方式很简单,主要的思想就是:爬虫 GUI界面展示。
这里我选用的目标网站是猫眼电影,当然感兴趣的话也可以去拿别的票房网站进行爬取分析,好了,废话不多说了,下面进入正题:
经过网站请求分析,找到了该网站数据请求的链接为:
box.maoyan/promovie/api/box/second.json
部分数据截图如下:
有了这样的API请求方式,那么数据获取就比较简单了,我们可以通过网站发送数据请求对返回的json数据进行解析就可以了。
通过对单个电影数据进行分析发现,所有的字段信息如下:
数据获取与解析处理代码实现如下:
def maoyanTicketInfo(url): ''' 猫眼电影票房信息 ''' for one_movie_dict in requests.get(url).json()['data']['list']: print("Movie:" one_movie_dict['movieName']) for one_key in one_movie_dict.keys(): try: print(map_dict[one_key], one_movie_dict[one_key]) except: pass print("\n========================================\n")
基于API的数据获取与解析处理大大简化了爬虫的工作量。
为了方便操作这里简单做了一个界面来进行使用,效果如下:
启动后界面如下:
运行中界面如下:
运行结束后界面如下:
接下来我们简单来看一下输出的结果数据内容,以前三名为例,如果不出意料的话,第一第二应该分别是:《哪吒之魔童降世》和《烈火英雄》了,下面我们来看一下具体的数据:
Movie:哪吒之魔童降世 上座率 12.7% 场均人次 20 avgViewBox 35.8 综合票房 11980.48 票房占比 68.5% 电影id号 1211270 电影名字 哪吒之魔童降世 onlineBoxRate -- 上映天数 上映10天 发布信息颜色 #666666 1.00 seatRate 55.2% 排片场次 174715 排片占比 47.1% splitAvgViewBox 32.3 分账票房 10838.91 分账票房占比 68.0% 分账票房总收入 19.58亿 综合票房总收入 21.31亿 viewInfo 334.5 viewInfoV2 334.5万
Movie:烈火英雄 上座率 8.0% 场均人次 10 avgViewBox 35.3 综合票房 3751.61 票房占比 21.4% 电影id号 1243361 电影名字 烈火英雄 onlineBoxRate -- 上映天数 上映4天 发布信息颜色 #666666 1.00 seatRate 27.6% 排片场次 111766 排片占比 30.1% splitAvgViewBox 31.9 分账票房 3386.64 分账票房占比 21.2% 分账票房总收入 4.18亿 综合票房总收入 4.55亿 viewInfo 106.0 viewInfoV2 106.0万
Movie:鼠胆英雄 上座率 4.5% 场均人次 5 avgViewBox 38.0 综合票房 386.88 票房占比 2.2% 电影id号 1207254 电影名字 鼠胆英雄 onlineBoxRate -- 上映天数 上映3天 发布信息颜色 #666666 1.00 seatRate 4.6% 排片场次 24087 排片占比 6.4% splitAvgViewBox 34.8 分账票房 354.26 分账票房占比 2.2% 分账票房总收入 4435.2万 综合票房总收入 4866.2万 viewInfo 10.1 viewInfoV2 10.1万
果然,第一第二正如我们所猜测的那样,第三是昨天刚上映的《鼠胆英雄》,暂时还没看过,先看看口碑怎么样再说吧。
怎么样?闲暇时间利用Python可以做很多有意思的事情,有问题或者想要交流的欢迎哈!
,