项目简介
本项目基于 Python 编程语言,实现了知乎热榜的定时跟踪,能够获取热榜问题详细信息并存储到数据库。同时提供 SQL 查询示例助力用户熟悉 SQL 基本语法,还具备使用 Selenium 实现 GPA 计算器的功能。
项目的主要特性和功能
- 知乎热榜爬虫:定期抓取知乎热榜,获取问题摘要、描述、热度等信息并存储到数据库。
- 可定制爬虫逻辑:用户可选择删除已有代码重新编写或完成代码填空实现功能。
- GPA 计算器:利用 Selenium 模拟登录 WebVPN 和 info,查询成绩并计算每学期绩点。
- SQL 练习:提供基于 MySQL 的 SQL 查询练习,帮助用户掌握基本 SQL 语法。
安装使用步骤
爬虫与数据库部分
- 若从零开始编写,删除
Zhihu_crawler/zhihu.py
后自行实现爬虫逻辑;若代码填空,阅读Zhihu_crawler/zhihu.py
完成约 40 行代码填空。 - 在
Zhihu_crawler/zhihu.json
中填入 Headers 和 MySQL 服务器配置信息。 - 依次实现
get_board
方法和get_question
方法,可另开Jupyter Notebook
调试。 - 运行
zhihu.py
开始定时跟踪热榜并存储数据。
Selenium 练习部分
- 参考
WebVPN/webvpn.py
中使用Selenium
登录 WebVPN 并跳转页面的代码。 - 设计并实现查询所需函数,补全查询流程(代码中
TODO
处),也可自行实现。 - 使用
BeautifulSoup
或lxml
解析成绩单页面 HTML 信息。
SQL 练习部分
- 下载并导入 7 月 8 日至 7 月 12 日的知乎热榜数据:
bash curl -fsSL https://cloud.tsinghua.edu.cn/f/a46b322b89064c03b89e/?dl=1 -o exercise.sql.gz gzip -dc exercise.sql.gz > exercise.sql
- 进入 MySQL,新建并使用数据库,导入预置数据:
bash mysql -u <username> -p mysql> create database s2; mysql> use s2; mysql> source exercise.sql; mysql> show tables;
- 根据问题提示,在 MySQL 中执行相应 SQL 查询语句。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】