相信很多人跟我一样都是比较喜欢看电影的,一部好的影视作品上映后,我们往往后参考豆瓣、猫眼等影片评论、打分数据来决定是否要去看;另一方面票房数据也是会辅助我们选择影片的一个重要方面。
在我之前的博客里面已经有很多于影评数据进行的文本数据分析相关的技术分享,这里今天想要做的就是基于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%场均人次 20avgViewBox 35.8综合票房 11980.48票房占比 68.5%电影id号 1211270电影名字 哪吒之魔童降世onlineBoxRate --上映天数 上映10天发布信息颜色 #666666 1.00seatRate 55.2%排片场次 174715排片占比 47.1%splitAvgViewBox 32.3分账票房 10838.91分账票房占比 68.0%分账票房总收入 19.58亿综合票房总收入 21.31亿viewInfo 334.5viewInfoV2 334.5万
Movie:烈火英雄上座率 8.0%场均人次 10avgViewBox 35.3综合票房 3751.61票房占比 21.4%电影id号 1243361电影名字 烈火英雄onlineBoxRate --上映天数 上映4天发布信息颜色 #666666 1.00seatRate 27.6%排片场次 111766排片占比 30.1%splitAvgViewBox 31.9分账票房 3386.64分账票房占比 21.2%分账票房总收入 4.18亿综合票房总收入 4.55亿viewInfo 106.0viewInfoV2 106.0万
Movie:鼠胆英雄上座率 4.5%场均人次 5avgViewBox 38.0综合票房 386.88票房占比 2.2%电影id号 1207254电影名字 鼠胆英雄onlineBoxRate --上映天数 上映3天发布信息颜色 #666666 1.00seatRate 4.6%排片场次 24087排片占比 6.4%splitAvgViewBox 34.8分账票房 354.26分账票房占比 2.2%分账票房总收入 4435.2万综合票房总收入 4866.2万viewInfo 10.1viewInfoV2 10.1万
果然,第一第二正如我们所猜测的那样,第三是昨天刚上映的《鼠胆英雄》,暂时还没看过,先看看口碑怎么样再说吧。
怎么样?闲暇时间利用Python可以做很多有意思的事情,有问题或者想要交流的欢迎哈!