1. 项目背景与核心功能解析
"绝命沙虫"这个项目名称乍看有些猎奇,但结合副标题"牛客tracker & 每日一题"就能理解其真实用途。这是一个面向牛客网(知名IT技术学习平台)用户的辅助工具,主要解决两个痛点:
-
题目追踪(Tracker)功能:自动监控用户在牛客网的刷题进度,类似下载软件中的tracker服务器概念。通过定期轮询API获取最新做题记录,避免手动统计的繁琐。
-
每日一题推送:整合牛客网题库资源,按算法/数据库等分类定时推送题目,帮助用户形成持续刷题习惯。
注意:项目名称中的"沙虫"可能影射《沙丘》中的沙漠生物,暗示工具像沙虫一样在题库中"钻取"有价值题目。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构与实现方案
2.1 数据获取层设计
核心难点在于牛客网没有公开API,需要模拟浏览器行为获取数据。实测可用方案:
python复制import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0',
'Cookie': '你的登录cookie' # 需手动获取
}
def get_submissions(user_id):
url = f'https://www.nowcoder.com/profile/{user_id}/practice'
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, 'html.parser')
# 解析做题记录表格...
风险提示:这种方式存在被封禁风险,建议:
- 控制请求频率(≥5分钟/次)
- 使用多账号轮询
- 优先使用牛客官方API(如有)
2.2 进度追踪算法
借鉴BT下载的tracker设计思路:
- 增量比对:记录上次检查时的题目ID集合,与新获取集合做差集运算
- 进度计算:
python复制def calc_progress(old_set, new_set): solved = new_set - old_set # 新增通
