Python | 电影Top250 + 数据可视化

文章目录

    • 1. 代码
    • 2. 数据可视化
      • 2.1 读取数据
      • 2.2 各年份上映电影数量柱状图(纵向)
      • 2.3 各地区上映电影数量前十柱状图(横向)
      • 2.4 电影评价人数前二十柱状图(横向)
  • 可视化项目源码+数据

大家好,我是 👉【Python当打之年(点击跳转)】

本期向大家展示如何用python分析电影相关信息,并对其进行可视化处理,希望对小伙伴们有所帮助。

1. 代码

# 获取每页电影链接
def getonepagelist(url,headers):try:r = requests.get(url, headers=headers, timeout=10)r.raise_for_status()r.encoding = 'utf-8'soup = BeautifulSoup(r.text, 'html.parser')lsts = soup.find_all(attrs={'class': 'hd'})for lst in lsts:href = lst.a['href']time.sleep(0.5)getfilminfo(href, headers)except:print('getonepagelist error!')# 获取每部电影具体信息
def getfilminfo(url,headers):filminfo = []r = requests.get(url, headers=headers, timeout=10)r.raise_for_status()r.encoding = 'utf-8'soup = BeautifulSoup(r.text, 'html.parser')# 片名name = soup.find(attrs={'property': 'v:itemreviewed'}).text.split(' ')[0]# 上映年份year = soup.find(attrs={'class': 'year'}).text.replace('(','').replace(')','')# 评分score = soup.find(attrs={'property': 'v:average'}).text# 评价人数votes = soup.find(attrs={'property': 'v:votes'}).textinfos = soup.find(attrs={'id': 'info'}).text.split('\n')[1:11]# 导演director = infos[0].split(': ')[1]# 编剧scriptwriter = infos[1].split(': ')[1]# 主演actor = infos[2].split(': ')[1]# 类型filmtype = infos[3].split(': ')[1]# 国家/地区area = infos[4].split(': ')[1]if '.' in area:area = infos[5].split(': ')[1].split(' / ')[0]# 语言language = infos[6].split(': ')[1].split(' / ')[0]else:area = infos[4].split(': ')[1].split(' / ')[0]# 语言language = infos[5].split(': ')[1].split(' / ')[0]if '大陆' in area or '香港' in area or '台湾' in area:area = '中国'if '戛纳' in area:area = '法国'# 时长times0 = soup.find(attrs={'property': 'v:runtime'}).texttimes = re.findall('\d+', times0)[0]filminfo.append(name)filminfo.append(year)filminfo.append(score)filminfo.append(votes)filminfo.append(director)filminfo.append(scriptwriter)filminfo.append(actor)filminfo.append(filmtype)filminfo.append(area)filminfo.append(language)filminfo.append(times)filepath = 'TOP250.xlsx'insert2excel(filepath,filminfo)# 保存数据
def insert2excel(filepath,allinfo):try:if not os.path.exists(filepath):tableTitle = ['片名','上映年份','评分','评价人数','导演','编剧','主演','类型','国家/地区','语言','时长(分钟)']wb = Workbook()ws = wb.activews.title = 'sheet1'ws.append(tableTitle)wb.save(filepath)time.sleep(3)wb = load_workbook(filepath)ws = wb.activews.title = 'sheet1'ws.append(allinfo)wb.save(filepath)return Trueexcept:return False

2. 数据可视化

2.1 读取数据

用pandas模块读取:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bardata = pd.read_excel('TOP250.xlsx')

2.2 各年份上映电影数量柱状图(纵向)

代码:

def getzoombar(data):year_counts = data['上映年份'].value_counts()year_counts.columns = ['上映年份', '数量']year_counts = year_counts.sort_index()c = (Bar().add_xaxis(list(year_counts.index)).add_yaxis('上映数量', year_counts.values.tolist()).set_global_opts(title_opts=opts.TitleOpts(title='各年份上映电影数量'),yaxis_opts=opts.AxisOpts(name='上映数量'),xaxis_opts=opts.AxisOpts(name='上映年份'),datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_='inside')],).render('各年份上映电影数量.html'))

效果:
在这里插入图片描述

2.3 各地区上映电影数量前十柱状图(横向)

代码:

def getcountrybar(data):country_counts = data['国家/地区'].value_counts()country_counts.columns = ['国家/地区', '数量']country_counts = country_counts.sort_values(ascending=True)c = (Bar().add_xaxis(list(country_counts.index)[-10:]).add_yaxis('地区上映数量', country_counts.values.tolist()[-10:]).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title='地区上映电影数量'),yaxis_opts=opts.AxisOpts(name='国家/地区'),xaxis_opts=opts.AxisOpts(name='上映数量'),).set_series_opts(label_opts=opts.LabelOpts(position="right")).render('各地区上映电影数量前十.html'))

效果:
在这里插入图片描述

2.4 电影评价人数前二十柱状图(横向)

代码:

def getscorebar(data):df = data.sort_values(by='评价人数', ascending=True)c = (Bar().add_xaxis(df['片名'].values.tolist()[-20:]).add_yaxis('评价人数', df['评价人数'].values.tolist()[-20:]).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title='电影评价人数'),yaxis_opts=opts.AxisOpts(name='片名'),xaxis_opts=opts.AxisOpts(name='人数'),datazoom_opts=opts.DataZoomOpts(type_='inside'),).set_series_opts(label_opts=opts.LabelOpts(position="right")).render('电影评价人数前二十.html'))

效果:
在这里插入图片描述

可视化项目源码+数据

网盘: https://pan.baidu.com/doc/share/Olj4d~aKuXT7AF0cq01MrQ-437060019167360
提取码: pyra


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享让更多人知道哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61984.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

或颠覆广告格局,FGMNT的VR工具亮相戛纳国际创意节

Situ或重新定义广告客户可视化其广告系列的方式。 在戛纳国际创意节上,墨尔本虚拟现实初创公司FGMNT展示了他们的新的VR网络工具——Situ,或重新定义广告客户可视化其广告系列的方式。 据悉,Situ是一种基于网页的沉浸式工具,使客…

html form提交heard,德普前妻Amber Heard戛纳合辑

0 德普前妻Amber Heard戛纳合辑 2018-05-14 10:56 德普前妻Amber Heard出席戛纳电影节,不论是简约的黑白配还是拍摄广告时撩人的红色衬衫,或是走红毯时性感十足的深V礼服裙,她都能穿出属于自己的味道。在外媒24小时跟拍、豪不修图的渣画质里&…

数据分析(一)豆瓣华语电影分析

在之前,我们已经用通过爬虫获取了豆瓣华语电影共33133部电影的数据,具体爬虫介绍请见之前的博文,爬虫实战(一)利用scrapy爬取豆瓣华语电影。本文对爬虫过程进行简要概述后,对这部分数据进行分析。 1. 前言…

Python猫眼电影数据采集与可视化分析实战

在国内比较知名的电影数据平台应该就是豆瓣、猫眼了,别的使用的不是很多,这两个平台就我们来说,平时的实践依赖还是比较多的,今天主要是想基于猫眼电影数据做一点分析性的工作,在我之前的文章中,基于豆瓣影评数据的采集、处理、存储、分析、可视化整个流程已经做了详细的…

践行社会责任的路上,中概股们看到了怎样的风景?

谈起社会责任,你会想到什么?绿色经济、“双碳”目标、共同富裕、乡村振兴、慈善活动、ESG(环境、社会和公司治理)这些名词肯定少不了。 当下,全球企业正越发强调社会责任,这或许是商业发展到一定阶段的必然结果,但也离…

第九届北京国际电影节海报,对你发起邀请

文丨夏莎莎 你看>丨创意视觉设计(ID:fvatm0525) 第九届北京国际电影节海报,你肿么了? 来自官方的海报文案 敲重点,好好学习昂 强行乱入的文案 四月的北京 水绿 云淡 风轻 天坛女神 屹立苍穹 脚踏大地 播…

遇见·戛纳--张全欣《遇见·环市路》

遇见戛纳--张全欣《遇见环市路》 今年的第71届戛纳电影节,不仅仅是西方电影的专属舞台,以中国为代表的亚洲电影以及种种正式参与或蹭热度的新闻层出不穷。 提起法国,大家想到的是:浪漫、时尚、奢华。 而提起法国戛纳,必…

当电影节遇上VR,会擦出怎样的火花?

2016年VR产业异常火爆,国际上各大电影节也纷纷掺和其中。 2016年被称为VR元年,如今元年已过半,我们见证了一大批VR的硬件设备的出现,也看到资本市场正在呼吁高品质的VR内容。VR产业是如此的火爆,国际上各大电影节也纷…

法国戛纳计算机大赛,大赛|2021法国戛纳金狮奖(截至2021.4.15)

原标题:大赛|2021法国戛纳金狮奖(截至2021.4.15) 金狮奖是威尼斯国际电影节的最高荣誉,从1949年开始颁发,被认为是电影界最高荣誉之一。金狮奖与金棕榈奖、金熊奖并称为电影节三大最高荣誉象征。 我们的九大主题反映了全球品牌传播…

明星的阶梯:威尼斯电影节 | 经济学人早报精选20210831

文 / 王不留(微信公众号:考研英语笔记) 2021年8月31号的早晨,来杯“经济学人浓香咖啡”,提神解困。 Staircase to stardom: Venice’s film festival The Venice International Film Festival kicks off this week. Th…

又见上海电影节抢票热,电影节不该只有狂欢

特约作者 | 李勤余 6月8日,第22届上海国际电影节于上午8点开启网络售票。开票首日5分钟内线上售票近15万张,半个小时内售票数突破20万张。对熟悉上影节的观众来说,上述数据不会让人感到太过吃惊。手快有、手慢无,如何通过各种手段…

第70届戛纳电影节:优酷全网首次广播级直播,阿里云提供海外专线技术

近日,第70届戛纳电影节在法国举行,共有来自13个国家的20部影片角逐最佳影片金棕榈奖。作为欧洲三大电影节之一,自然是明星和影迷追逐的焦点。为了让不能亲赴戛纳感受现场氛围的影迷没有遗憾。优酷全网率先采用了眼镜采集实时回传、VR信号实时…

优酷多角度全高清直播,如同身临第70届戛纳电影节

近日,第70届戛纳电影节在法国举行,共有来自13个国家的20部影片角逐最佳影片金棕榈奖。作为欧洲三大电影节之一,自然是明星和影迷追逐的焦点。为了让不能亲赴戛纳感受现场氛围的影迷没有遗憾。优酷全网率先采用了眼镜采集实时回传、VR信号实时…

环球夫人形象大使龚华 受邀出席戛纳电影节闭幕式

戛纳电影节已经进程过半,世界名流云集于此,你来我往好不热闹。昨天,小编同大家一起欣赏了华人女星在戛纳红毯上的风姿。今天,小编还要与大家分享一条十分令人欣喜的消息:5月21号我们的环球夫人龚华成为首位受邀出席戛纳…

戛纳电影节百花齐放,中国明星衣着品味紧跟时尚前沿

一年一度的戛纳电影节于当地时间的5月14日晚正式开幕。作为欧洲三大国际电影节的其中一员,其所具备的影响力不言而喻,因此受到了来自世界各地的电影创作者的亲睐。每年能走上戛纳红毯的艺人也就象征着与国际艺术的接轨,同时也证明了自己在电影…

2021年中国游戏行业发展现状及行业发展趋势分析[图]

在数字经济蓬勃发展的背景下,我国的游戏产业也在发挥资源和用户优势,推陈出新,通过技术驱动、产业融合和文化创新等方式加快产业发展步伐,在“加快数字化发展,建设数字中国”的战略目标指引下,在互联网技术…

游戏用户行为以及消费分析

一、分析目标 为了了解当前游戏的运营情况,对游戏从以下四个方面进行分析 1.新增玩家分析:从玩家数量、付费玩家占比、每日新增玩家数 2.玩家活跃度分析:从不同用户在线时长、分布特征展开分析 3.玩家付费情况分析:从PUR&…

中国游戏的未来在哪里 - 游戏行业20年历史观察及趋势分析

原文地址入口 文/许怡然 自从3月离开360之后,已经很久没有出现在国内游戏圈里了,因为选择了在一家香港上市的游戏公司工作,这段时间一直在海外市场到处看,也花了不少时间思考整个游戏行业的发展历史和未来趋势,对比中…

互联网的世界里,游戏行业的现状是如何?

今年9月,笔者曾经在一篇报道中讲述了银河数娱的困境。当时整个集团的员工都被迟发工资,迟缴公积金,陈二狗也不能幸免。 于是制作人和研发领导开始找他谈话:如果你主动离职,公司就立刻跟你结清拖欠的工资,并…

Play-To-Earn游戏将接管电子游戏行业?

来源/micky.com 编译/Ivans 在最初的链游风暴刺激了Facebook向Meta转型之后,P2E玩赚市场正在进入冷静期。在下一个牛市周期开始和主要游戏发布之前,重要的是要考虑我们即将面临的重大变化。 以下是P2E改变开发者商业模式的一些关键方式,但也将…