1. 项目有哪些具体功能模块:
① 爬虫抓取模块(scrape_lightweight.py):基于 curl_cffi 异步并发,模拟 Chrome 131 浏览器指纹,自动轮转代理池,支持断点续爬,可抓取猿急送平台所有兼职项目数据(标题、预算、工时、状态、描述等)。
② 智能过滤模块:内置黑名单关键词库,自动排除高难度(架构/专家/底层)、违规敏感(翻墙/刷单/赌博)、硬件 IoT、游戏开发等不适宜大学生接取的项目。
③ 技术分类模块(classify.py):根据项目描述中的技术关键词,自动将任务归类为爬虫/Python脚本/前端/Web/小程序移动端/后端接口/AI智能体/测试质检/嵌入式IoT/工具脚本等 10 个技术方向,并分 Sheet 输出。
④ 学生项目筛选模块(filter_student_projects.py):在过滤基础上,进一步筛选预算 ≤500元、非驻场的项目,按预算升序排列,输出适合大学生的项目清单。
⑤ 代理池模块(proxy_pool.py):自动从快代理、free-proxy-list 抓取免费代理,连通性测试后按成功率加权随机选取,失败 3 次自动拉黑,定期恢复。
2. 项目的主要功能描述:
本项目解决大学生在猿急送等兼职平台上"找项目难、筛项目累"的问题。用户只需运行脚本,即可自动获取全部可投递项目并导出 Excel,同时一键生成按技术方向分类的 Sheet 和经过严格过滤的学生友好项目列表。相比人工逐页浏览,效率提升数十倍;相比人工筛选,避免接到超难度或违规项目。项目结构清晰、依赖简单(仅 Python 4个库),可作为高校课程设计/综合实验的优秀实践案例,完整体现了网络爬虫、数据清洗、分类算法、文件处理等多项核心技能。
① 浏览器初始化与反检测模块(launch):使用 Playwright 启动可见 Chromium,注入 --disable-blink-features=AutomationControlled 参数屏蔽自动化标记,调用 playwright-stealth 重写 navigator.webdriver、chrome.runtime 等检测特征,加载本地缓存的 douyin_state.json 跳过登录流程。
② 登录态管理模块(login):导航至 /user/self 触发登录弹窗,通过 JS 遍历 DOM 定位「密码登录」按钮并点击,自动填写环境变量中的手机号和密码,检测页面是否含「未登录」判断结果,登录成功后调用 storage_state() 序列化 Cookie 和本地存储并持久化到本地文件。
③ 数据抓取与去重模块(scrape_tab):监听页面网络响应事件,拦截包含 aweme/feed 关键词的 API 请求,解析 JSON 提取视频字段,维护 aweme_id 集合实现去重;采用滚动加载策略,每次 scrollBy(0, 2000) 后等待 2s 触发分页,连续 5 次 scrollHeight 无变化或到达页面底部时终止,最多滚动 100 次防死循环。
④ 数据导出模块(export_results):每个 Tab 结果分别导出为 JSON(含完整字段和元数据)和 CSV(utf-8-sig 编码,Excel 原生支持中文),输出到 output/ 目录。
⑤ 账号配置模块(.env):使用 python-dotenv 从环境变量读取 DOUYIN_USERNAME 和 DOUYIN_PASSWORD,避免硬编码,.env 文件已加入 .gitignore 不入库。