news 2026/8/8 3:08:04

基于AI Agent与CLI的智能求职自动化工具设计与实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于AI Agent与CLI的智能求职自动化工具设计与实践

1. 从手动刷新到智能推送:为什么我们需要一个求职 CLI Agent

又到了金三银四的求职季,或者是你想看看外面的机会。打开 BOSS 直聘,熟练地输入几个关键词,点击搜索,然后呢?你大概率会陷入一个循环:每隔半小时、一小时,就忍不住去刷新一下页面,看看有没有新的、匹配度高的职位冒出来。手动筛选、重复刷新、等待回复,这个过程不仅枯燥,效率也低得可怜。更头疼的是,当你同时在看多个平台、关注多个岗位方向时,这种信息过载和重复劳动会把人搞得筋疲力尽。

这就是我最初遇到的问题。作为一个技术从业者,我本能地想到:能不能让机器帮我做这些重复性的工作?能不能在我喝咖啡、写代码的时候,让一个“智能助手”帮我盯着招聘市场,一旦有合适的职位出现,就立刻通知我,甚至帮我完成初步的沟通?这个想法催生了对AI Agent命令行工具(CLI)的结合探索。

最近,我在 GitHub 上发现了一个非常对味口的开源项目:boss-agent-cli。它不是一个简单的爬虫脚本,而是一个真正意义上的、面向 BOSS 直聘工作流的AI Agent 命令行工具。简单来说,它把你的求职需求(比如职位关键词、薪资范围、工作地点)写成一份“任务说明书”(配置文件),然后这个 Agent 就会像一个不知疲倦的猎头,7x24小时在后台运行,自动搜索、过滤、分析职位,并通过 Telegram 或邮件把最新、最相关的机会推送到你手边。

这不仅仅是“自动化”,而是“智能化”。传统的爬虫或定时脚本只能做到“抓取”,而 boss-agent-cli 借助大语言模型(LLM)的能力,可以理解职位描述(JD),判断其与你的匹配度,甚至能生成初步的打招呼语。它把我们从“信息检索员”的角色中解放出来,让我们能更专注于准备面试和提升技能本身。接下来,我就结合这个项目,深入聊聊如何给你的 AI Agent 赋予“求职”这项技能,并打造一个属于你自己的、高效的求职工作流。

2. boss-agent-cli 项目核心架构与工作原理拆解

在开始动手配置之前,我们必须先理解 boss-agent-cli 这个工具到底是怎么工作的。知其然,更要知其所以然,这能帮助我们在后续使用和可能的问题排查中,做到心中有数。它的架构可以清晰地分为三层:数据采集层、智能处理层和通知执行层。

2.1 数据采集层:模拟浏览器与反爬策略的平衡

这是所有类似工具的基石。boss-agent-cli 需要从 BOSS 直聘网站获取实时的职位数据。它没有使用简单的requests库直接抓取 HTML,因为现代网站,尤其是像 BOSS 直聘这样拥有复杂前端交互和反爬机制的站点,直接抓取静态页面几乎不可能成功。

注意:任何涉及网站数据获取的工具,都必须严格遵守网站的robots.txt协议和使用条款。boss-agent-cli 的设计初衷是辅助个人求职者提升效率,严禁用于大规模、商业化的数据爬取或任何干扰网站正常服务的行为。开发者需要时刻保持对数据来源的尊重和法律边界的敬畏。

该项目采用了PuppeteerPlaywright这类无头浏览器自动化工具。我查看其代码依赖和实现,更倾向于它使用了 Playwright,因为 Playwright 对现代 Web 技术的支持更好,且能更稳定地处理单页应用(SPA)。它的工作流程是这样的:

  1. 启动一个无头浏览器实例:在后台默默打开一个“看不见”的 Chrome 或 Firefox。
  2. 模拟真人登录与导航:工具会加载配置文件中的 Cookie(或引导用户手动登录一次后获取),然后跳转到 BOSS 直聘的搜索页面。这一步模拟了人类用户打开网站、登录、点击搜索的行为轨迹,极大地降低了被识别为机器人的风险。
  3. 执行搜索与滚动加载:根据配置的关键词、城市、薪资等参数,在搜索框输入并触发搜索。随后,工具会模拟鼠标滚动,触发页面的懒加载(Lazy Load),逐步获取完整的职位列表。这个过程会等待足够的网络空闲时间和 DOM 稳定时间,以模仿真人浏览的节奏。
  4. 提取结构化数据:当页面加载出职位卡片后,工具会使用 CSS 选择器或 XPath 精准地定位并提取每个职位的关键信息,如:公司名称、职位名称、薪资范围、经验要求、学历要求、职位描述、HR 活跃状态等,并将其整理成结构化的 JSON 或 Python 字典。

这一层的技术选型非常关键。之所以不用简单的 HTTP 请求,是因为 BOSS 直聘的页面数据大量通过 JavaScript 动态渲染,且接口有复杂的加密和鉴权逻辑。无头浏览器虽然资源开销稍大,但能最完整地模拟真人环境,是成功率最高的方案。

2.2 智能处理层:LLM 如何理解职位与你的匹配度

如果只是把数据抓下来,那和普通的爬虫没区别。boss-agent-cli 的核心价值在于第二层——利用大语言模型(LLM)对抓取到的职位信息进行智能处理。这是“Agent”智能的体现。

项目通常通过配置支持 OpenAI 的 GPT 系列、 Anthropic 的 Claude 或开源的本地模型(通过 Ollama、LM Studio 等)。其处理流程如下:

  1. 信息浓缩与格式化:将从网页抓取的、可能有些杂乱的职位信息,重新组织成一段清晰、结构化的文本提示(Prompt)。
  2. 匹配度分析:工具会将你的“求职画像”(在配置文件中定义,例如:“寻找后端开发岗位,精通 Go 和 Python,有分布式系统经验,期望薪资 30K 以上,偏好互联网大厂”)和职位描述一起发送给 LLM。它会向 LLM 提出类似这样的问题:“基于候选人的技能和期望,请分析该职位匹配度,并给出一个 0-10 的分数,同时简要说明理由。”
  3. 打招呼语生成:对于高匹配度的职位,Agent 可以进一步请求 LLM:“请为这个职位生成一段个性化的、得体的打招呼语,突出我(候选人)在 XX 技能上与职位要求的契合点。” 这能帮你迈出沟通的第一步,而且话术往往比千篇一律的“你好,我对这个职位感兴趣”要有效得多。
  4. 过滤与排序:根据 LLM 返回的匹配度分数,工具可以对抓取到的所有职位进行过滤(例如,只保留 7 分以上的职位)和排序(按匹配度从高到低),确保推送给你的都是高质量机会。

这里的精妙之处在于,匹配规则不再是简单的关键词匹配(比如“Go”和“Golang”可能匹配不上),而是语义层面的理解。LLM 能理解“负责系统架构设计”和“有高并发系统经验”之间的关联,从而做出更接近人类HR或资深工程师的判断。

2.3 通知执行层:无缝融入你的日常工作流

处理好的信息需要高效地送达。boss-agent-cli 支持多种通知渠道,确保你能及时收到提醒。

  1. Telegram Bot:这是最推荐的方式之一。你需要创建一个 Telegram Bot(通过 @BotFather),获取它的 API Token。将 Token 和你的 Chat ID 配置到工具中。当 Agent 发现高匹配度职位时,会通过这个 Bot 向你发送一条格式优美的消息,通常包含职位名称、公司、薪资、匹配度分数、匹配理由摘要,甚至生成的打招呼语。你可以直接在 Telegram 上点击链接跳转到 BOSS 直聘页面,实现无缝衔接。
  2. 电子邮件(SMTP):对于习惯邮件的用户,可以配置 SMTP 服务器(如 Gmail、QQ 邮箱、公司邮箱等)。工具会将职位信息整理成 HTML 或纯文本邮件发送到你的指定邮箱。
  3. 控制台输出:在调试或直接运行时会直接打印在终端里。
  4. Webhook:高级用户可以通过配置 Webhook,将数据推送到自己的服务器,进而触发更复杂的流程,比如自动记录到 Notion 数据库、发送到 Slack 频道等。

这三层架构共同构成了一个完整的、自治的 AI Agent。它感知环境(BOSS直聘网站)、处理信息(LLM分析)、做出决策(过滤排序)并执行动作(发送通知),完美诠释了一个简单而实用的 Agent 工作循环。

3. 从零开始部署与配置你的求职 Agent

理解了原理,我们就可以动手搭建了。整个过程可以分为环境准备、项目获取、配置编写和首次运行四个主要步骤。我会以在 Linux/macOS 系统上部署为例,Windows 用户使用 WSL 或 Git Bash 也能获得类似体验。

3.1 基础环境准备:Node.js 与 Python 的协同

boss-agent-cli 是一个 Node.js 项目,但其智能核心依赖 Python 运行的 LLM 服务(如果你使用本地模型)。因此,我们需要准备两个环境。

首先,确保你的系统已安装Node.js (版本 16 或以上)npm。可以通过以下命令检查:

node --version npm --version

如果没有安装,建议通过 nvm (Node Version Manager)来安装和管理 Node.js 版本,这样可以避免权限问题并方便切换版本。

其次,安装Python (版本 3.8 或以上)。同样检查版本:

python3 --version pip3 --version

接下来,我们需要一个 LLM 服务。有两种主流选择:

  • 方案A:使用云端 API(推荐初学者):如 OpenAI GPT-3.5/4, Anthropic Claude。你只需要一个有效的 API Key。这种方式省心,性能稳定,但会产生费用。
  • 方案B:部署本地模型(追求隐私与控制):使用 Ollama 或 LM Studio 。例如,用 Ollama 拉取一个轻量级模型如llama3:8bqwen2:7b。这需要你的电脑有足够的 RAM(通常 8GB 以上)和一定的 GPU 资源会更佳。
# 使用 Ollama 的示例 ollama pull llama3:8b ollama run llama3:8b # 这会启动一个本地 API 服务,默认在 11434 端口

3.2 获取项目与安装依赖

打开终端,克隆 boss-agent-cli 的仓库(请替换为实际的 GitHub 仓库地址,这里假设为https://github.com/xxx/boss-agent-cli.git):

git clone https://github.com/xxx/boss-agent-cli.git cd boss-agent-cli

安装项目的 Node.js 依赖:

npm install

根据项目的具体说明,可能还需要安装 Playwright 的浏览器内核:

npx playwright install chromium

如果项目有 Python 后端用于调用 LLM,你还需要创建一个 Python 虚拟环境并安装依赖:

python3 -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows pip install -r requirements.txt # 如果项目提供了此文件

3.3 核心配置文件详解:定义你的“求职画像”

配置是 Agent 的灵魂。项目根目录下通常会有一个示例配置文件,如config.example.yamlconfig.example.json。复制一份并重命名为config.yaml

让我们逐部分解析一个典型的 YAML 配置:

# boss-agent-cli 配置文件 boss: cookie: "你的BOSS直聘登录Cookie" # 关键!如何获取见下文 keywords: ["Golang后端开发", "Python数据分析", "云原生工程师"] city: "北京" salary: [25, 50] # 期望薪资范围,单位K experience: ["1-3年", "3-5年"] # 经验要求 llm: provider: "openai" # 可选:openai, claude, ollama api_key: "sk-..." # 如果使用 OpenAI 或 Claude base_url: "http://localhost:11434/v1" # 如果使用本地 Ollama model: "gpt-3.5-turbo" # 或 "claude-3-haiku",或 "llama3:8b" # 匹配度分析的提示词模板,通常无需修改,除非你想定制LLM的“判断标准” match_prompt: | 你是一个资深的职业顾问。请根据以下候选人的求职意向和职位描述,评估匹配度(0-10分)。 候选人意向:{candidate_profile} 职位信息:{job_description} 请仅返回一个JSON:{"score": 分数, "reason": "简要理由"} notification: telegram: enabled: true bot_token: "你的Telegram Bot Token" chat_id: "你的Telegram Chat ID" email: enabled: false smtp_host: "smtp.gmail.com" smtp_port: 587 username: "your-email@gmail.com" password: "你的应用专用密码" to: "接收邮箱@gmail.com" schedule: "*/30 * * * *" # Cron 表达式,每30分钟运行一次

关键配置项解读与实操要点:

  1. boss.cookie(最关键的步骤):这是工具能模拟你登录状态的凭证。绝对不能直接从浏览器控制台复制document.cookie,那样可能包含敏感信息且格式不全。

    • 正确获取方法:使用浏览器插件(如 EditThisCookie for Chrome)导出 BOSS 直聘 (www.zhipin.com) 域名下的 Cookie,并保存为Netscape 格式的.txt文件。然后,使用 Python 或 Node.js 脚本将这个文件内容解析成工具所需的 Cookie 字符串格式。项目 README 中通常会提供一个小脚本。核心是获取__zp_stoken__等关键字段。
    • 安全警告:这个 Cookie 等同于你的登录凭证,请像保护密码一样保护它。不要上传到公开的 Git 仓库。将config.yaml添加到.gitignore文件中。
  2. llm配置

    • providerbase_url:如果使用本地 Ollama,provider可设为openai(因为 Ollama 兼容 OpenAI API 格式),并将base_url指向http://localhost:11434/v1
    • match_prompt:这是控制 Agent “判断力”的核心。你可以微调这个提示词,让 LLM 更关注你重视的方面,比如“特别关注团队技术栈是否包含 Docker 和 K8s”。
  3. notification.telegram

    • bot_token:通过 Telegram 搜索@BotFather,发送/newbot指令,按提示创建机器人后获得。
    • chat_id:给你刚创建的 Bot 发送一条消息(如/start),然后访问https://api.telegram.org/bot<YourBOTToken>/getUpdates(将<YourBOTToken>替换为你的真实 Token),在返回的 JSON 中找到message.chat.id字段的值。
  4. schedule:使用 Cron 表达式定义运行频率。*/30 * * * *表示每30分钟运行一次。频率不宜过高,以免对目标网站造成不必要的压力,建议不低于30分钟。

3.4 首次运行与验证

配置完成后,我们可以先进行一次手动运行,测试整个流程是否通畅:

node index.js --config ./config.yaml --once

或者根据项目的具体入口文件:

npm start -- --once

观察终端输出:

  1. 是否成功启动浏览器?
  2. 是否成功登录(通过 Cookie)并跳转到搜索页?
  3. 是否抓取到了职位列表?
  4. 是否调用了 LLM 进行分析?
  5. 是否成功发送了通知(到 Telegram 或控制台)?

如果一切顺利,你应该能在 Telegram 或终端里看到第一批匹配的职位推荐。恭喜,你的个人求职 AI Agent 已经正式上岗了!

4. 高级技巧与个性化定制:让你的 Agent 更聪明

基础功能跑通后,我们可以让这个 Agent 更好地为我们服务。以下是一些提升效率和匹配精度的进阶思路。

4.1 优化 LLM 提示词,精准控制匹配逻辑

默认的match_prompt可能不够贴合你的具体需求。你可以把它设计得更精细。例如,如果你非常看重技术栈匹配和团队背景:

llm: match_prompt: | 你是一个资深技术面试官。请严格评估以下职位与候选人的匹配度。 【候选人档案】 核心技能:Golang, PostgreSQL, Redis, Kubernetes, AWS 附加技能:Python, Docker, 消息队列 期望:技术氛围好,有清晰成长路径,避免996 薪资底线:30K/月 【职位信息】 {job_description} 【评估任务】 1. 技术栈匹配度(0-5分):主要看Golang、数据库、云服务。 2. 团队与公司加分(0-3分):是否知名、技术博客、开源项目。 3. 硬伤扣分(0- -2分):明确要求996/大小周,或薪资低于底线。 最终得分 = 技术栈分 + 团队加分 + 硬伤分(总分0-10)。 请返回JSON:{"score": 最终分, "tech_match": 技术栈分, "team_bonus": 团队加分, "red_flag": 硬伤分, "reason": "综合说明"}

通过设计结构化的评分规则,你可以引导 LLM 进行更可控、更符合你价值观的判断,而不仅仅是笼统的“感觉”。

4.2 实现多城市、多关键词组合搜索与去重

配置文件中的keywordscity可能是数组,但工具可能默认只进行简单的组合。你可以通过修改任务生成逻辑或使用外部脚本,实现更复杂的搜索策略。

例如,你可以创建一个jobs_search_config.json

[ {"city": "北京", "keywords": ["Golang", "后端开发"], "salary": [30, 50]}, {"city": "上海", "keywords": ["Python 机器学习", "算法工程师"], "salary": [35, 60]}, {"city": "深圳", "keywords": ["Java", "大数据开发"], "salary": [28, 45]} ]

然后写一个简单的包装脚本,循环读取这个配置,为每个组合启动一次搜索任务(注意控制频率和间隔)。同时,在结果汇总阶段,根据“公司名+职位名”进行去重,避免因不同搜索条件重叠而收到重复推荐。

4.3 与个人知识管理系统(PKM)集成

仅仅收到通知还不够,我们需要管理这些求职信息。可以通过配置Webhook或直接修改项目的通知模块,将匹配的职位信息自动同步到你的个人知识管理系统,比如:

  • Notion:利用 Notion 的 API,创建一个“求职机会”数据库,每条记录包含公司、职位、薪资、匹配度、职位链接、分析理由等字段。Agent 每推荐一个职位,就自动在 Notion 中创建一条记录。
  • ObsidianLogseq:可以生成 Markdown 文件,保存到指定的笔记目录,方便你后续统一回顾和做面试准备。
  • AirtableGoogle Sheets:对于喜欢表格视图的用户,这也是很好的选择。

这种集成将 Agent 从一个“信息推送器”升级为“信息管理流程的自动触发器”,让你的求职过程更加体系化。

4.4 设置智能休眠与流量控制

为了避免对 BOSS 直聘服务器造成不必要的压力,也为了保护自己的账号,实现“友好型”自动化至关重要。

  1. 随机延迟:在每次页面操作(如点击、滚动)之间,不要使用固定的等待时间,而是添加一个随机延迟(例如 2-5 秒),让行为模式更接近真人。
  2. 遵循robots.txt:定期检查 BOSS 直聘的robots.txt文件,尊重其关于爬虫访问频率和路径的限制。
  3. 智能休眠:在招聘低峰期(如深夜 23:00 到次日早晨 7:00)停止运行 Agent。这可以通过在 Cron 任务中设置更复杂的时间段,或者在 Agent 代码开始时判断当前时间来实现。
  4. 错误处理与熔断:代码中必须包含完善的错误处理。如果连续多次请求失败(如遇到验证码、IP被封),Agent 应能自动停止运行,并通过紧急通知渠道(如 Telegram)向你报警,而不是无限重试。

5. 常见问题排查与安全伦理考量

在实际运行中,你可能会遇到一些问题。这里列举一些典型场景及其排查思路。

5.1 Cookie 失效与登录态维护

问题:运行一段时间后,Agent 报错,无法获取数据,提示“未登录”或“会话过期”。

原因与解决

  • BOSS 直聘的登录 Cookie 有有效期。解决方案不是频繁重新获取,而是实现一个“Cookie 刷新机制”。
    • 可以编写一个辅助脚本,定期(如每周)在受控环境下(可能是你本机的图形界面),半自动地登录一次并更新 Cookie 文件。绝对不要尝试全自动破解登录,这违反服务条款且技术风险极高。
    • 更稳妥的做法是,将 Agent 的运行频率降低(如每天只运行2-3次),减少因高频访问导致会话被踢的风险。

5.2 反爬虫检测与行为识别

问题:访问被限制,出现验证码,或返回的数据为空。

排查与应对

  1. 检查请求频率:立即停止当前任务,检查你的schedule是否过于频繁。将间隔从30分钟延长到1小时或更久。
  2. 模拟行为多样化:检查你的无头浏览器脚本是否行为过于“机械”。确保:
    • 每次启动的浏览器 User-Agent 是常见的。
    • 鼠标移动轨迹和滚动速度加入了随机性。
    • 在关键的页面跳转间有足够的、随机的等待时间。
  3. 使用住宅IP代理(高级/谨慎):如果你在云服务器上运行,固定的数据中心 IP 容易被识别。可以考虑使用高质量的住宅代理 IP 池,但这会引入复杂性和成本,且必须确保代理服务合法合规。
  4. 接受人工干预:这是最根本的认知。这类工具应定位为“辅助”,而非“全自动”。当出现验证码时,设计一个流程让工具通知你,由你手动完成验证。这既是技术上的妥协,也是法律和伦理上的必要边界。

5.3 LLM 分析结果不稳定或偏差大

问题:匹配度分数波动大,或者明显不合理的职位被推荐。

优化方向

  1. 优化 Prompt:如 4.1 节所述,将你的要求描述得更具体、更结构化。给 LLM 明确的评分维度和权重。
  2. 调整温度参数:在调用 LLM API 时,尝试降低temperature参数(如设为 0.1 或 0.2),让它的输出更确定、更少“创造性”。
  3. 引入少样本示例:在 Prompt 中提供几个正例和反例。例如:“以下是一个匹配度高的例子:职位要求 Go 和微服务,候选人也精通... 打9分。以下是一个匹配度低的例子:职位要求 Java,候选人只会 Python... 打2分。”
  4. 后处理过滤:即使 LLM 给了分数,也可以在代码里加一层基于明确规则的硬性过滤。比如,无论分数多高,只要职位描述里出现“必须 996”,就直接过滤掉。

5.4 安全与伦理的再强调

在使用此类工具时,我们必须时刻绷紧两根弦:安全伦理

  • 数据安全:你的 BOSS 直聘 Cookie、LLM API Key、Telegram Bot Token 都是敏感信息。务必使用环境变量或加密的配置文件来管理,永远不要提交到公开代码仓库。
  • 账户安全:过度自动化行为可能导致你的 BOSS 直聘账号被限制功能。务必以低调、低频、模拟真人的方式使用。
  • 法律与平台条款:仔细阅读 BOSS 直聘的用户协议。自动化工具可能违反其“禁止使用任何自动化手段访问”的条款。你需要自行评估风险,并明确工具仅用于个人、非商业、低频率的求职辅助。
  • 公平性考量:你的工具让你获得了信息获取的效率优势,但这本质上和设置一个“新职位提醒”没有区别,只是更智能。但切记,不要用它进行恶意刷屏、轰炸 HR 等干扰平台正常秩序的行为。技术应该用于提升效率、创造价值,而非破坏规则。

运行 boss-agent-cli 这类项目,更像是在技术和规则的边界上进行一次谨慎的探索。它极大地提升了求职的被动信息获取效率,把我们从重复的刷新和筛选中解放出来。然而,它无法替代求职中最核心的部分:简历打磨、技术准备、面试沟通和最终的职业选择。它只是一个强大的“信息过滤器”和“提醒器”,真正的价值创造,依然在于你自身的硬实力和软技能。把这个工具用好,让它成为你职业发展道路上的一个高效副驾,而不是试图让它完全接管方向盘。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 2:59:30

STM32L432KC驱动HC-SR04超声波测距:从原理到实现的嵌入式实践

这次我们来看一个基于 STM32L432KC 微控制器的简易超声波测距装置。这个项目的核心不是复杂的算法&#xff0c;而是如何用一块低成本、低功耗的 MCU 和常见的 HC-SR04 超声波模块&#xff0c;快速搭建一个可用的测距系统。对于嵌入式初学者、电子爱好者或需要快速验证测距功能的…

作者头像 李华
网站建设 2026/8/8 2:57:45

粒子群算法在分布式电源选址定容中的应用与优化

1. 分布式电源规划的现实挑战与粒子群算法优势在能源结构转型的大背景下&#xff0c;分布式电源&#xff08;Distributed Generation, DG&#xff09;正逐渐成为配电网中的重要组成部分。与传统集中式发电不同&#xff0c;DG通常指分布在用户侧的小型发电单元&#xff0c;包括光…

作者头像 李华
网站建设 2026/8/8 2:56:54

大模型评测实战指南:从六维能力到评测套餐组合

1. 从“炼丹”到“质检”&#xff1a;为什么评测是模型训练的生死线在AI圈子里&#xff0c;我们常把训练大模型比作“炼丹”。大家投入海量算力、数据和工程师的头发&#xff0c;日夜不停地“烧炉子”&#xff0c;就盼着能炼出一颗金光闪闪的“仙丹”——一个性能卓越的模型。但…

作者头像 李华
网站建设 2026/8/8 2:55:34

HTML5语义化标签实战指南与最佳实践

1. 为什么我们需要告别div滥用时代 十年前我刚入行前端的时候&#xff0c;几乎所有布局都靠div堆砌&#xff0c;class命名全是"box1"、"wrapper2"这种毫无意义的字符串。直到参与一个政府门户项目改版&#xff0c;屏幕阅读器用户反馈完全无法理解页面结构&…

作者头像 李华
网站建设 2026/8/8 2:54:49

利用旧安卓手机打造智能车机:软硬结合实现全自动电源管理

1. 项目概述&#xff1a;让旧手机在摩托车上“复活”手头有台闲置的安卓旧手机&#xff0c;除了偶尔当个备用机或者给孩子看动画片&#xff0c;似乎就没什么大用了。吃灰&#xff0c;是它最常见的归宿。但如果你恰好也是个摩托车爱好者&#xff0c;看着车上那块要么没有、要么功…

作者头像 李华