基于Flask实现豆瓣Top250电影可视化

news2025/6/2 9:09:33

项目截图

概述

该项目旨在对豆瓣Top 250电影进行全面的数据分析,使用了Python爬虫、Flask框架进行开发,并采用了Echarts进行数据可视化以及WordCloud进行词云分析。应用展示了多个功能,如电影列表、评分分布、词频统计和团队信息。

主要功能
  1. 首页: 显示项目的概述和统计数据,包括经典电影数量、评分统计、词汇统计和团队成员数量。

  2. 电影列表页: 展示豆瓣Top 250电影的详细信息,包括电影中文名称、外文名称、评分、评价人数、一句话概述及其他信息。

  3. 评分分布页: 通过柱状图展示豆瓣Top 250电影的评分分布情况,提供用户对评分分布的直观了解。

  4. 词云统计页: 根据250部电影的一句话描述,提炼出词云树,通过词云图展示词汇的频率,让用户更清晰地了解人们对经典电影的理解。

  5. 团队页: 展示团队成员的信息。

技术实现
  1. Python爬虫: 使用Python爬虫从豆瓣网站上抓取电影数据。

  2. Flask框架: 使用Flask搭建Web应用,实现前后端的交互。

  3. SQLite数据库: 使用SQLite数据库存储爬取到的电影数据。

  4. Echarts: 使用Echarts进行数据的可视化,生成评分分布的柱状图。

  5. WordCloud: 使用WordCloud生成词云图,进行词频统计和展示。

  6. Matplotlib: 配合WordCloud进行词云图的绘制和保存。

数据库结构
  • movie250表: 存储豆瓣Top 250电影的详细信息,包括电影中文名称、外文名称、评分、评价人数等字段。
使用方法
  1. 启动Flask应用:

    if __name__ == '__main__':
        app.run()
    
  2. 访问首页,通过浏览器访问http://localhost:5000/查看应用的各个功能页面。

代码示例
  • Flask路由配置:

    from flask import Flask, render_template
    import sqlite3
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return render_template("/index.html")
    
    @app.route('/index')
    def home():
        return render_template("/index.html")
    
    @app.route('/movie')
    def movie():
        datalist = []
        conn = sqlite3.connect("movie.db")
        cur = conn.cursor()
        sql = '''select * from movie250''';
        data = cur.execute(sql)
        for item in data:
            datalist.append(item)
        cur.close()
        conn.close()
        return render_template("/movie.html",movies = datalist)
    
    @app.route('/score')
    def score():
        score = []
        num = []
        conn = sqlite3.connect("movie.db")
        cur = conn.cursor()
        sql = '''select score,count(score) from movie250 group by score'''
        data = cur.execute(sql)
        for item in data:
            score.append(str(item[0]))
            num.append(item[1])
        cur.close()
        conn.close()
        return render_template("score.html", score=score,num=num)
    
    @app.route('/word')
    def word():
        return render_template("/word.html")
    
    @app.route('/team')
    def team():
        return render_template("/team.html")
    
    if __name__ == '__main__':
        app.run()
    
  • 词云图生成:

    import jieba
    from matplotlib import pyplot as plt
    from wordcloud import WordCloud
    from PIL import Image
    import numpy as np
    import sqlite3
    
    conn = sqlite3.connect('movie.db')
    cur = conn.cursor()
    sql = 'select cname from movie250'
    data =cur.execute(sql)
    text = ""
    for item in data:
        text = text + item[0]
    cur.close()
    conn.close()
    
    cut = jieba.cut(text)
    string = ' '.join(cut)
    print(len(string))
    
    img = Image.open(r'.\static\assets\img\tree.jpg')
    img_array = np.array(img)
    wc = WordCloud(
        background_color = 'white',
        mask = img_array,
        font_path = "msyh.ttc"
    )
    wc.generate_from_text(string)
    fig = plt.figure(1)
    plt.imshow(wc)
    plt.axis('off')
    plt.savefig(r'.\static\assets\img\word.jpg',dpi=500)
    

这个项目通过整合多个技术栈,实现了对豆瓣Top 250电影数据的分析和可视化展示,是一个完整的全栈项目示例。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

More SQL(Focus Subqueries、Join)

目录 Subqueries Subqueries That Return One Tuple Subqueries and Self Connection The IN Operator The Exists Operator The Operator ANY The Operator ALL Union, Intersection, and Difference(交并差) Bag Semantics Controlling Dupl…

从图像处理到深度学习:直播美颜SDK的人脸美型算法详解

在直播的镜头前,每一位主播都希望自己“光彩照人”。但在高清摄像头无死角的审视下,哪怕是天生丽质,也难免需要一点技术加持。于是,美颜SDK应运而生,成为直播平台提升用户粘性和视觉体验的重要工具。 尤其是在“人脸美…

zTasker一款Windows自动化软件,提升效率:大小仅有10MB,免费无广告

一、zTasker是什么? zTasker是一款发布于2023年9月的免费无广告工具,专为Windows用户打造。它以仅8MB的轻量体积、极低资源占用(内存消耗不足10MB)和秒级启动速度脱颖而出,堪称“任务计划程序的终极强化版”。无论是定…

最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现

最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现 一、网络流问题与相关概念1.1 网络流问题定义1.2 关键概念 二、Ford-Fulkerson算法原理2.1 核心思想2.2 算法步骤 三、Ford-Fulkerson算法的代码实现3.1 Python实现3.2 C实现3.3 Java实现 四、Ford-Fulkerson算法的时间…

【测试】Bug和用例

软件测试贯穿于软件的整个⽣命周期 软件测试的⽣命周期是指测试流程,这个流程是按照⼀定顺序执⾏的⼀系列特定的步骤,去保证产品质量符合需求。在软件测试⽣命周期流程中,每个活动都按照计划的系统的执⾏。每个阶段有不同的⽬标和交付产物 Bu…

鸿蒙OS的5.0.1.120版本体验怎么样?

点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 越来越是好用了,之前是凑合能用,现在是大多能用。 我朋友的mate30PRO和PuraX一起用,新系统确实满足我90%以上的需求 一个系统适配一款机型,是要…

使用ssh-audit扫描ssh过期加密算法配置

使用ssh-audit扫描ssh过期加密算法配置 安装检查ssh的加密算法配置修改ssh的加密算法配置 安装 # pip3安装ssh-audit pip3 instal ssh-audit检查ssh的加密算法配置 # 检查ssh的配置 ssh-audit 192.168.50.149修改ssh的加密算法配置 # 查看ssh加密配置文件是否存在 ls /etc/c…

Java+Playwright自动化-2-环境准备与搭建-基于Maven

1.简介 上一章中已经讲如何通过引入jar包来搭建JavaPlaywright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简…

由sigmod权重曲线存在锯齿的探索

深度学习的知识点,一般按照执行流程,有 网络层类型,归一化,激活函数,学习率,损失函数,优化器。如果是研究生上课学的应该系统一点,自学的话知识点一开始有点乱。 一、激活函数Sigmod…

二、OpenCV图像处理-图像处理

目录 1、连通性 2、形态学操作 2.1腐蚀和膨胀 2.2开闭运算 2.3礼帽和黑帽 2.4总结 3、图像平滑 3.1图像噪声 3.2均值滤波 3.3高斯滤波 3.4中值滤波 3.5总结 4、直方图 4.1直方图的原理与显示 4.2掩膜的应用 4.3直方图均衡化 4.4自适应均衡化 4.5总结 5、边缘…

UPS的工作原理和UPS系统中旁路的作用

UPS(不间断电源)根据工作原理和适用场景的不同,主要分为以下三种类型,每种类型的特点和适用场景如下: 1. 后备式UPS(Offline/Standby UPS) 工作原理: 正常供电时,负载直接…

麒麟系统 Linux(aarch64处理器)系统java项目接入海康SDK问题

1. 麒麟系统部署海康摄像头时的 JNA 链接错误&#xff0c; 海康提供的jna sdk版本太低&#xff0c;需升级版本4.5及以上&#xff0c;把集成的Structure 替换成以下类 public class SDK_Structure extends Structure {protected List<String> getFieldOrder() {List<St…

Python图片格式批量转换器教程

&#x1f4da; 前言 编程基础第一期《11-30》-- 在图像处理工作中&#xff0c;我们经常需要将大量图片从一种格式转换为另一种格式。本教程将介绍如何使用Python的Pillow库开发一个简单但功能强大的图片格式批量转换器&#xff0c;帮助你高效处理图片格式转换任务。 目录 &…

从公开到私密:重新思考 Web3 的数据安全

去中心化存储是 Web3 的基石之一&#xff0c;使用户和应用能够在无需依赖中心化服务商的情况下存储数据。但自由也带来了一个重大挑战&#xff1a;数据安全。在一个无许可的世界中&#xff0c;如何确保用户文档、游戏资产或 AI 数据集等敏感内容是私密的、可控访问的&#xff0…

计算机网络常见体系结构、分层必要性、分层设计思想以及专用术语介绍

计算机网络体系结构 从本此开始&#xff0c;我们就要开始介绍有关计算机网络体系结构的知识了。内容包括&#xff1a; 常见的计算机网络体系结构 计算机网络体系结构分层的必要性 计算机网络体系结构的设计思想 举例说明及专用术语 计算机网络体系结构是计算机网络课程中…

接口自动化测试用例的编写方法

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口&#xff0c;需要对接口头部进行封装&#xff0c;所以没有办法在浏览器下直接调…

基于SpringBoot的商家销售管理网站的设计与实现

湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 基于SpringBoot的商家销售管理网站的设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕…

word中表格拉不动以及插入图片有间距

1、word中表格插入图片始终有间隙&#xff0c;怎么调表格高度和宽度都消除不了间隙&#xff0c;如下所示&#xff1a; 可以在表布局—单元格边距—修改上下左右边距为0即可 2、经过上述调整后左右没有间隔了&#xff0c;但图片上下有间隔&#xff0c;直觉是行距问题&#xff0c…

【Java学习笔记】接口

接口 应用场景引出 一、接口的介绍 1. 接口的基本结构 interface 接口名{属性抽象方法 }引出关键字&#xff1a;implements 2. 子类实现接口 class a implements 接口名{}3. 接口中的属性说明&#xff1a;属性默认是public static final修饰的 &#xff08;1&#xff09;f…

代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )

图论part08 拓扑排序精讲 代码随想录讲解链接 题目链接 思路 在这个题目之中&#xff0c;个别文件的处理依赖于别的文件&#xff0c;因此&#xff0c;文件的处理顺序十分重要。我们用图来表示文件的处理顺序&#xff0c;文件s指向文件t&#xff0c;则说明如果要正确的处理文…