Skip to content

qinqinghao/Top250DA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

豆瓣电影 Top250 数据分析项目

项目简介

本项目是一个基于 Python 的数据处理与分析平台,核心功能是抓取豆瓣电影 Top250 的数据,将其持久化到 MySQL 数据库,并进行数据分析与可视化。

项目采用现代化的分层架构设计,将数据抓取、数据库操作、业务逻辑与数据分析清晰地分离,实现了高度的模块化和可维护性。

技术栈

  • 核心框架: Python 3.x
  • 数据抓取: requests, beautifulsoup4
  • 数据库: MySQL 8+, PyMySQL
  • 数据分析: pandas, numpy
  • 数据可视化: matplotlib, seaborn
  • 配置管理: python-dotenv
  • 加密支持: cryptography

项目结构

top250DA/
├── .env                  # 存储环境变量 (需手动创建)
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
├── config/               # 配置模块
│   └── settings.py
├── src/                  # 核心源码
│   ├── domain/           # 领域模型 (Movie)
│   ├── repository/       # 数据仓库层 (抓取、数据库交互)
│   ├── services/         # 业务逻辑层
│   └── analysis/         # 数据分析与可视化
└── main.py               # 项目主入口

功能模块

数据抓取模块

  • 从豆瓣 Top250 网站抓取电影的标题、评分、年份、国家/地区、类型和评语。
  • 支持配置抓取页数。
  • 使用随机 User-Agent 防止被封禁。

数据存储模块

  • 连接到 MySQL 数据库。
  • 自动创建 movies 数据表(如果不存在)。
  • 将抓取到的电影数据批量插入或更新到数据库中。

数据分析与可视化模块

  • 从数据库加载全部电影数据。
  • 清洗和预处理数据。
  • 生成以下可视化图表并保存到本地:
    • 电影年代分布柱状图
    • 电影评分分布直方图
    • 中外电影比例饼图

快速开始

环境要求

  • Python 3.8+
  • Pip
  • MySQL 8.0+

配置步骤

  1. 克隆项目到本地:git clone https://gitee.com/qqh2310904/top250DA.git
  2. 进入项目目录:cd top250DA
  3. 在项目根目录下创建并配置 .env 文件(详见下文)。
  4. 创建并激活 Python 虚拟环境。
  5. 在虚拟环境中安装所有依赖。
  6. 初始化数据库。
  7. 运行主程序。

数据库初始化

1. 创建数据库

请确保您的 MySQL 服务正在运行,并创建一个数据库(名称需与 .env 文件中的 DB_NAME 保持一致)。

CREATE DATABASE `db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 创建电影表

项目首次运行时会自动创建 movies 表。您也可以手动执行以下 SQL 创建:

CREATE TABLE `movies` (
  `id` int NOT NULL AUTO_INCREMENT,
  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `rating` decimal(3,1) NOT NULL,
  `year` int DEFAULT NULL,
  `country` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `genre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `quote` text COLLATE utf8mb4_unicode_ci,
  PRIMARY KEY (`id`),
  UNIQUE KEY `title` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

运行命令

# 步骤 1: 创建并配置 .env 文件
# 在项目根目录手动创建 .env 文件,并填入以下内容
# --- .env file content ---
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_USER=root
# DB_PASSWORD=your_actual_password
# DB_NAME=db
# -------------------------

# 步骤 2: 创建虚拟环境
python -m venv .venv

# 步骤 3: 激活虚拟环境 (Windows)
.\.venv\Scripts\activate

# 步骤 4: 安装依赖
pip install -r requirements.txt

# 步骤 5: 运行项目
python main.py

注意事项

  1. 在运行项目前,请确保 MySQL 服务已启动。
  2. 请务必在 .env 文件中配置正确的数据库用户名和密码。
  3. 项目运行后,生成的分析图表(.png 文件)会保存在项目的根目录下。

许可证

Apache License 2.0

About

利用python下的beautifulsoup、pandas、matplotlib等库并结合mysql数据库来对豆瓣电影Top250进行数据抓取、清洗与分析

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages