用浏览器自动化接管重复操作:一次华为云成长中心签到的实践

举报
yd_282788736 发表于 2026/11/03 14:34:10 2026/11/03
【摘要】 记录一次用浏览器自动化完成华为云开发者成长中心签到与内容发布的实践:复用已登录浏览器、通过可访问性树定位元素、先判断状态再执行动作,并总结了登录态过期、敏感词检测等踩坑经验。

一、为什么做这件事

日常开发中有很多“每天点一下”的操作:签到、浏览任务、发布内容。单次只要几十秒,但每天都会打断心流。于是我用浏览器自动化把这些步骤串起来,本文记录一次真实落地的过程与踩过的坑。

需要先说明边界:本文只针对自己账号的日常操作,不涉及多账号、刷分等行为。华为云成长中心的公告也明确禁止多账号刷分,自动化应当用来减少重复劳动,而不是绕过平台规则。


二、方案:复用已登录的浏览器,而不是模拟登录

最早考虑过 Playwright 或 Puppeteer 这类无头浏览器,但很快遇到两个问题:

1. 账号体系依赖完整登录态(Cookie、设备指纹、风控),无头环境更容易触发验证码;

2. 在脚本里保存账号密码,本身就是安全隐患。

最终采用的思路是:不碰凭据,直接复用用户已经登录的浏览器。整体是“浏览器扩展 + 本地守护进程 + 命令行”的三层结构:

• 扩展注入到现有浏览器,负责读取页面、执行点击与输入;

• 本地 daemon 通过 WebSocket 暴露控制能力;

• 命令行工具负责编排动作,例如导航、观察页面、点击元素。

这样账号密码始终由浏览器自带的密码管理器处理,自动化程序只负责“看页面、点按钮”。


三、几个关键实现点

1. 读取页面,而不是硬编码选择器

观察工具返回的是可访问性树,每个可交互元素带一个临时引用,比如登录链接、账号输入框、密码输入框。相比 CSS 选择器,这种方式更稳定:前端修改 class 名不会影响定位,只有元素语义变了才会失败。

2. 导航后引用会失效

每次页面跳转或较大的 DOM 变化,旧的元素引用都会失效。正确的做法是“动作 → 重新观察 → 再动作”,不要复用上一次的引用。

3. 先判断状态,再执行动作

签到按钮需要区分“未签到”和“已签到”。如果页面已经显示“已签到”,就不应重复点击,避免产生多余的提交。

4. 编辑器要选对模式

博客编辑器支持富文本和 Markdown 两种模式,但同一篇文章只能使用其中一种。自动化时先确定模式再填内容,能避免光标定位和格式转换带来的麻烦。


四、踩过的坑

• 登录态过期:页面可能提示“登录超时或用户已下线”,此时应停止后续动作并重新登录,而不是继续点发布。

• 隐藏的提示层:DOM 中可能同时存在多个提示框模板,观察结果里能看到但不一定可见,判断时要结合截图确认。

• 敏感词检测:发布前平台会扫描内容,命中敏感词会要求二次确认。与其“继续发布”被替换成星号,不如返回修改。

• 人机共用同一个标签页:当用户接管浏览器时,自动化动作会被拒绝。此时应等待控制权交还,而不是重放不确定的提交。


五、安全与合规边界

1. 不读取、不导出 Cookie、Token 和密码,凭据交给浏览器密码管理器;

2. 不绕过验证码、不伪造请求,所有操作都通过真实页面完成;

3. 只用于自己的单账号和真实内容发布,平台明令禁止多账号刷分;

4. 发布属于对外动作,自动化流程里应保留人工确认环节。


六、小结

浏览器自动化的价值不是“薅羊毛”,而是把每天重复、低价值的点击收敛掉,让人把精力放在真正需要判断的事情上。复用登录态、语义化读取页面、先判断状态再动作,这套组合对大多数“网页上的日常操作”都适用。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。