基于Python+pyecharts 实现国内上映电影票房评分可视化分析项目源码

基于Python+pyecharts 实现国内上映电影票房评分可视化分析项目源码

项目内容

统计2018年在国内上映的所有电影,分别获取上映电影的票房、评分(豆瓣、猫眼、时光、imdb)、类型、上映日期、演员、导演等数据。利用所获数据绘图,对国内上映电影进行定量分析

项目思路
  1. 通过 中国票房网 获得2018年大陆上映电影和每部电影票房数据
  2. 根据已有的票房数据,通过豆瓣 api 和详细页面,获得每部电影的导演,演员和豆瓣评分等详细数据
  3. 分别通过 猫眼、时光网 和 imdb,获取这三个网站的电影评分数据
  4. 新建影人条目,利用豆瓣获得的影人数据,对2018年每个演员年参演电影进行统计
  5. 根据已有数据作图,分析2018年电影票房排名、不同网站评分差异、电影票房-评分关系等
运行环境
  • Python 3.6
  • linux/windows
  • jupyter notebook
运行依赖包
  • requests
  • bs4
  • pymongo
  • numpy
  • pyecharts
文件说明
  • movies_data 文件夹: 包括了所有获取数据所需的 .py 文件

    • step0_chinamovies.py:获取中国票房网2018年所有国内上映电影及票房
    • step1_doubanmovies.py:根据中国票房网得到的电影数据,从豆瓣 api 接口中获得更详细的数据并存入数据库
    • step1_doubanmovies_supplement.py:用来寻找在 step1_doubanmovies.py 中由于名称原因没有找到的电影
    • step2_moviedetail.py:获得每部电影在不同网站的评分、演职人员等详细信息
    • step3_celebrity.py:计算每个影人(导演)2018年参(导)演电影的票房总和
  • movie_draws 文件夹

    • movie_pyecharts.ipynb
      • 为了更加直观的进行展示,数据分析和绘图的代码写在了 jupyter notebook 里面
      • 采用 pyecharts 绘图,包括“电影评分-票房”等八张图
    • 包括了HTML格式的所有 movie_pyecharts.ipynb 绘制图
  • output_data 文件夹

    • data_output.py: 从数据库导出电影和影人数据的 .py 文件
    • movie_data.csv: 抓取的2018年所有电影条目,共 522 部
    • cast_data.csv: 每个影人2018年参演电影及电影票房总和排名,共 4723 影人
一些技术细节
  • 由于要更改数据库,所有获取数据并保存数据库的操作都写成了函数形式,执行函数的代码加了注释,可根据自身需要去掉注释运行代码
  • 数据保存:数据采用mongodb保存,使用时需要安装 pymongo 第三方库
    • 连接到数据表
      client = pymongo.MongoClient()
      db = client.chinamovies # 连接到数据库
      collections = db.movies # 数据表 movies
      collections_detail = db.moviesdetail # 豆瓣数据都放入了数据表 moviesdetail 中
      
    • 写入多条数据
      collections.insert_many(data['pData'])
    • 写入一条数据
      collections_detail.insert_one(datadetail)
    • 更新数据
      # 更新数据到数据库中
      collections_detail.update({'_id': i['_id']}, {'$set': {'猫眼':{
          'title': movie['nm'], 'rank': movie['sc'],
          'id': movie['id'], 'pubDesc': movie['pubDesc']
      }}})
      
  • 数据验证
    • 本项目中,由于涉及多个网站的电影数据,因此会发生 网站A 电影上映日期或名称与 网站B 不同的情况。本项目中,电影上映日期和名称均以豆瓣网为准。利用 网站A 的电影名在 网站B 中进行搜索时,必须要保证电影名和上映年份完全一致,对于电影名不符合的电影,需要进行二次的人工判断
    • 例:
      # 必须要名称一致且2018年大陆上映才符合要求
      if movie['nm'] == i['title'] and re.findall(r'2018.*大陆上映', movie['pubDesc']):
          ... # 符合要求
      
  • 绘图:利用 pyecharts 绘图,pyecharts 使用可见官方文档:http://pyecharts.org/
所有图表
  1. 在这里插入图片描述

  2. 在这里插入图片描述

  3. 在这里插入图片描述

  4. 在这里插入图片描述

  5. 在这里插入图片描述

  6. 在这里插入图片描述

  7. 在这里插入图片描述

  8. 在这里插入图片描述

  9. 在这里插入图片描述

完整项目代码下载地址:基于Python+pyecharts 实现国内上映电影票房评分可视化分析

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵结…

php之 角色的权限管理(RBAC)详解

RBAC(Role-based access control)是一种常见的权限管理模型,通过将用户分配至特定的角色,以及为角色分配访问权限,实现了权限管理的目的。以下是关于RBAC的详细解释: 角色:RBAC模型的核心是角色…

Java电商平台 - API 接口设计之 token、timestamp、sign 具体架构与实现|电商API接口接入

一:token 简介 Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个appId和一个key, …

常用JQuery插件汇总

Jquery插件,数字动画特效,从n到m数字跳动JJ​​​​​​​CountUp.jsA javascript class that animates a numerical value by counting to it.http://inorganik.github.io/countUp.js/

javaEE -10(11000字详解5层重要协议)

一:应用层重点协议 1.1: DNS DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。 TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息&#x…

EASYX动画效果实现

eg1:绘制小球的动画效果 通过一下的代码实现小球从左向右移动效果&#xff0c;计算小球的移动速度和帧率实现移动效果平和造成视觉上的错觉 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #define PI 3.14 // 1PI …

Android JNI/NDK 入门从一到二

1. 前言 最基础的创建JNI接口的操作&#xff0c;可以直接看这篇文章 : 第一个Android JNI工程&#xff0c; 本文会基于掌握创建JNI接口的操作的基础之上&#xff0c;来入门JNI/NDK。 2. 在JNI中打印日志 2.1 添加log模块 记得CMake中有log模块&#xff0c;不然编译不过 ta…

大模型之十九-对话机器人

大语言模型的最早应用是Chatbot&#xff0c;其实我最早接触语义理解在2014年&#xff0c;2014年做智能音箱的时候&#xff0c;那时也是国内第一批做智能音箱的&#xff0c;在现在看起来当时的智能音箱比较傻&#xff0c;很多问题无法回答&#xff0c;长下文效果也不好&#xff…

etcd的mvcc源码剖析

mvcc简介 悲观锁 在对于一些临界资源进行读写的时候&#xff0c;为了防止其他人进行同步的修改数据&#xff0c;直接将当前的数据锁住&#xff0c;不让别人使用&#xff0c;来实现并发安全 乐观锁 在对临界资源进行操作的时候&#xff0c;不锁住数据&#xff0c;实现独占&…

网络协议--TCP的交互数据流

19.1 引言 前一章我们介绍了TCP连接的建立与释放&#xff0c;现在来介绍使用TCP进行数据传输的有关问题。 一些有关TCP通信量的研究如[Caceres et al. 1991]发现&#xff0c;如果按照分组数量计算&#xff0c;约有一半的TCP报文段包含成块数据&#xff08;如FTP、电子邮件和U…

Elasticsearch跨集群检索配置

跨集群检索字面意思&#xff0c;同一个检索语句&#xff0c;可以检索到多个ES集群中的数据&#xff0c;ES集群默认是支持跨集群检索的&#xff0c;只需要动态的增加入节点即可&#xff0c;下面跟我一起来体验下ES的跨集群检索的魅力。 Elasticsearch 跨集群检索推荐的是不同集群…

linux中nginx配置https

一、版本适配 版本一定要适配&#xff0c;否则会报错各种参数定位不到不识别的错误&#xff0c;以下是版本适配信息&#xff0c;各位观客自行按照以下信息匹配版本。 Nginx 1.11.5及以上版本与OpenSSL 1.0.2及以上版本兼容。Nginx 1.15.2及以上版本与OpenSSL 1.1.1及以上版本兼…

redis的bitmap(面试题,待补充)

位图简介 如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢&#xff1f;如果使用KV存储&#xff0c;每个用户需要记录365个&#xff0c;当用户量上亿时&#xff0c;这所需要的存储空间是惊人的。 Redis 为我们提供了位图这一数据结构&#xff…

图神经网络及其在知识图谱的应用

一 应用领域 道路交通&#xff0c;动态预测 自动驾驶&#xff0c;无人机场景 化学&#xff0c;医疗等场景 物理模型相关 二 图基本模块定义 V Vertex点 E Edge 边&#xff08;向量&#xff09; U Global 图 &#xff08;例如&#xff1a;全局向量&#xff09; 无论事…

msigdbr hallmarks gsea broad研究所

使用msigdbr r包 #BiocManager::install("msigdb") #https://www.gsea-msigdb.org/gsea/msigdb #https://cran.r-project.org/web/packages/msigdbr/vignettes/msigdbr-intro.html #https://bioconductor.org/packages/release/data/experiment/vignettes/msigdb/ins…

RPC远程调用加密方法获取返回值

前言 从混淆的加密JS中还原了加密参数的具体生成流程&#xff0c;结果想从JS转python的过程中第一步就卡住了。开头密钥JS代码如下&#xff0c;但是水平有限不知道如何转为python实现(如果有大佬知道希望可以评论指点)。利用execjsjsdom来执行简化还原后的JS代码依旧无法实现。…

MGRE环境下的OSPF

实验拓扑 需求 1 R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2 R1/4/5为全连的MGRE结构&#xff0c;R1/2/3为星型的拓扑结构&#xff0c;R1为中心站点 3 所有私有网段可以互相通讯&#xff0c;私有网段使用OSPF完成。 IP规划 配置IP R1 # interface GigabitEt…

Flutter FittedBox

&#x1f525; 英文单词FittedBox &#x1f525; Fitted 通过有道翻译如下 &#xff1a; Box 通过有道翻译如下 &#xff1a; 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子&#xff0c;将其它布局放到FittedBox这样一个盒子中&#xff0c;从而实现 盒子里面的…

C++ list 的使用

目录 1. 构造函数 1.1 list () 1.2 list (size_t n, const T& val T()) 1.3 list (InputIterator first, InputIterator last) 2. bool empty() const 3. size_type size() const 4. T& front() 4. T& back() 5. void push_front (const T& val) 6.…

Elasticsearch核心技术与实战-05-elasticsearch的安装与简单配置-Windows

首先下载elasticsearch的zip包&#xff1a;下载地址 网络不通的解决方法&#xff1a;国内镜像站 es、kibana、logstash均可在华为云开元镜像站自行选择版本下载&#xff1a;下载地址 下载插件包&#xff1a; .\bin\elasticsearch-plugin install analysis-icu .\bin\elasti…