littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Python的北大选课网爬虫与数据分析系统

项目简介

本项目是针对北京大学选课网的爬虫与数据分析系统,可自动化爬取选课网课程信息,将其转换为结构化数据存储于MySQL数据库,最后用简单数据分析工具对课程数据进行查询和统计,覆盖数据爬取、转换、存储到分析的完整流程。

项目的主要特性和功能

  1. 课程信息爬取:借助crawler.py脚本自动爬取北大选课网课程信息,支持按课程类型、开课单位等筛选,将爬取的HTML文件保存到本地。
  2. 数据转换:通过converter.py脚本,利用BeautifulSoup库解析HTML文件,提取课程信息并转为JSON格式,方便后续处理。
  3. 数据存储:使用importer.py脚本,将JSON格式的课程数据导入MySQL数据库,便于长期存储和查询。
  4. 数据分析:analyzer.py脚本提供简单数据分析功能,如统计课程总数、查询学分最高的课程、按院系列出开课数目等。

安装使用步骤

前提准备

  1. Python环境:确保已安装Python 3.x版本。
  2. 依赖库安装:使用pip安装项目所需的Python库: bash pip install requests beautifulsoup4 mysqlclient
  3. MySQL数据库:确保已安装并配置好MySQL数据库,创建一个名为elective_db的数据库。

使用步骤

  1. 爬取课程信息:运行crawler.py脚本,爬取北大选课网课程信息,脚本会将爬取的HTML文件保存到courses_html目录。注意:因选课网可能需登录,请手动登录并将Cookie粘贴到代码中。
  2. 转换数据:运行converter.py脚本,将爬取的HTML文件解析并转换为JSON格式,转换后的JSON文件将保存在courses_data目录。
  3. 导入数据:运行importer.py脚本,将JSON格式的课程数据导入MySQL数据库。确保MySQL数据库配置正确,且course_tab表已创建。
  4. 数据分析:运行analyzer.py脚本,对数据库中的课程数据进行查询和分析,脚本会输出课程总数、学分最高的课程以及按院系列出的开课数目等信息。

注意事项

  1. 数据库配置:使用importer.pyanalyzer.py脚本时,确保MySQL数据库的连接信息(如用户名、密码、数据库名等)正确配置。
  2. 爬虫限制:爬取课程信息时,遵守目标网站的使用协议,避免过度请求导致IP被封。
  3. 数据存储:确保MySQL数据库表结构正确,且数据库连接正常。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】