项目简介
本项目是针对北京大学选课网的爬虫与数据分析系统,可自动化爬取选课网课程信息,将其转换为结构化数据存储于MySQL数据库,最后用简单数据分析工具对课程数据进行查询和统计,覆盖数据爬取、转换、存储到分析的完整流程。
项目的主要特性和功能
- 课程信息爬取:借助
crawler.py
脚本自动爬取北大选课网课程信息,支持按课程类型、开课单位等筛选,将爬取的HTML文件保存到本地。 - 数据转换:通过
converter.py
脚本,利用BeautifulSoup
库解析HTML文件,提取课程信息并转为JSON格式,方便后续处理。 - 数据存储:使用
importer.py
脚本,将JSON格式的课程数据导入MySQL数据库,便于长期存储和查询。 - 数据分析:
analyzer.py
脚本提供简单数据分析功能,如统计课程总数、查询学分最高的课程、按院系列出开课数目等。
安装使用步骤
前提准备
- Python环境:确保已安装Python 3.x版本。
- 依赖库安装:使用
pip
安装项目所需的Python库:bash pip install requests beautifulsoup4 mysqlclient
- MySQL数据库:确保已安装并配置好MySQL数据库,创建一个名为
elective_db
的数据库。
使用步骤
- 爬取课程信息:运行
crawler.py
脚本,爬取北大选课网课程信息,脚本会将爬取的HTML文件保存到courses_html
目录。注意:因选课网可能需登录,请手动登录并将Cookie粘贴到代码中。 - 转换数据:运行
converter.py
脚本,将爬取的HTML文件解析并转换为JSON格式,转换后的JSON文件将保存在courses_data
目录。 - 导入数据:运行
importer.py
脚本,将JSON格式的课程数据导入MySQL数据库。确保MySQL数据库配置正确,且course_tab
表已创建。 - 数据分析:运行
analyzer.py
脚本,对数据库中的课程数据进行查询和分析,脚本会输出课程总数、学分最高的课程以及按院系列出的开课数目等信息。
注意事项
- 数据库配置:使用
importer.py
和analyzer.py
脚本时,确保MySQL数据库的连接信息(如用户名、密码、数据库名等)正确配置。 - 爬虫限制:爬取课程信息时,遵守目标网站的使用协议,避免过度请求导致IP被封。
- 数据存储:确保MySQL数据库表结构正确,且数据库连接正常。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】