littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于 Python 的知乎热榜爬虫及数据处理项目

项目简介

本项目基于 Python 编程语言,实现了知乎热榜的定时跟踪,能够获取热榜问题详细信息并存储到数据库。同时提供 SQL 查询示例助力用户熟悉 SQL 基本语法,还具备使用 Selenium 实现 GPA 计算器的功能。

项目的主要特性和功能

  1. 知乎热榜爬虫:定期抓取知乎热榜,获取问题摘要、描述、热度等信息并存储到数据库。
  2. 可定制爬虫逻辑:用户可选择删除已有代码重新编写或完成代码填空实现功能。
  3. GPA 计算器:利用 Selenium 模拟登录 WebVPN 和 info,查询成绩并计算每学期绩点。
  4. SQL 练习:提供基于 MySQL 的 SQL 查询练习,帮助用户掌握基本 SQL 语法。

安装使用步骤

爬虫与数据库部分

  1. 若从零开始编写,删除 Zhihu_crawler/zhihu.py 后自行实现爬虫逻辑;若代码填空,阅读 Zhihu_crawler/zhihu.py 完成约 40 行代码填空。
  2. Zhihu_crawler/zhihu.json 中填入 Headers 和 MySQL 服务器配置信息。
  3. 依次实现 get_board 方法和 get_question 方法,可另开 Jupyter Notebook 调试。
  4. 运行 zhihu.py 开始定时跟踪热榜并存储数据。

Selenium 练习部分

  1. 参考 WebVPN/webvpn.py 中使用 Selenium 登录 WebVPN 并跳转页面的代码。
  2. 设计并实现查询所需函数,补全查询流程(代码中 TODO 处),也可自行实现。
  3. 使用 BeautifulSouplxml 解析成绩单页面 HTML 信息。

SQL 练习部分

  1. 下载并导入 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
  2. 进入 MySQL,新建并使用数据库,导入预置数据: bash mysql -u <username> -p mysql> create database s2; mysql> use s2; mysql> source exercise.sql; mysql> show tables;
  3. 根据问题提示,在 MySQL 中执行相应 SQL 查询语句。

下载地址

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