当前位置: 首页 > news >正文

小红书改版后发布按钮抓不到?两个思路绕开Shadow DOM限制

最近在影刀社区看到一个哥们的求助帖,问题是这样的:

"小红书发布笔记-无法定位发布按钮,只能定位上一级。前段时间可以,改版后我发现不能定位,请问这种情况怎么解决呢?"

这个问题看起来很具体,但仔细想想挺有意思的——一个普通的发布按钮,怎么突然就找不到了?

一查才发现,小红书玩儿了个花活。

它们把"发布"按钮包裹在 template shadowrootmode="closed" 标签中,属于封闭的 Shadow DOM 节点,这导致影刀 RPA 无法正常捕获发布按钮元素。具体看一下源码:

<xhs-publish-btn data-v-04842b33="" data-v-74e5df5a-s="" is-publish="true" is-save-draft="true" submit-text="发布" save-text="暂存离开" submit-disabled="false" save-disabled="false" uia-uid="0|1">
  <template shadowrootmode="closed">
    <style>
      /\* 一堆样式 \*/
    </style>
    <div data-v-app="">
      <div class="publish-page-publish-btn">
        <button type="button" class="ce-btn white">暂存离开</button>
        <button type="button" class="ce-btn bg-red">发布</button>
      </div>
    </div>
  </template>
</xhs-publish-btn>

Shadow DOM 这个技术,说白了就是一个隔离机制。它能在普通 DOM 树之外挂一个完全独立的内部 DOM,外面的玩意进不去,里面的也出不来。

XPath 顺着树往下走,碰到 xhs-publish-btn 这一层就直接"撞墙"了。浏览器在底层把这条路封死了,里面的 button class="ce-btn bg-red" 标签,XPath 根本看不见。

这是 Web 标准的一个设计,用来防攻击、防爬虫、防止自动化脚本随意点击。但这对做自动化的人来说,就成了一道坎儿。

有些朋友直接卡在这里——前面的流程全自动化了,最后一步点不动,流程中断,很窝火。

好在这事儿有解。今天介绍两个思路,第一种是影刀社区?? DC 哥??分享的,第二种是我自己的思路。两个都实测能跑通。

第一招:原型链劫持 — 油猴

原理很简单,小红书在建立 Shadow DOM 的时候会调浏览器的 attachShadow 方法,传入 { mode:closed} 让浏览器封死内部。

我们提前在这个方法上做手脚,把参数强行改成 {mode:open} ,浏览器就开门了。

怎么操作呢。不复杂。

1. 浏览器装油猴扩展。浏览器扩展商店 搜 Tampermonkey,装上。

2. 装好以后点击油猴图标,选「创建新脚本」或「新增脚本」,把这段代码复制进去:

// ==UserScript==
// @name         强制Shadow DOM为open模式
// @match        \*://\*/\*
// @grant        none
// ==/UserScript==(function() {
    'use strict';
    Element.prototype.\_attachShadow = Element.prototype.attachShadow;
    Element.prototype.attachShadow = function(option) {
        return this.\_attachShadow({ mode: 'open' });
    };
})();

3. 保存脚本。然后去小红书刷新页面。完。

现在影刀可以正常用 XPath 找到发布按钮并捕获了。

第二招:锚点聚焦 — 纯键盘操作

但我自己后来想了想,觉得有个更朴素的办法。不用装什么油猴,不用改浏览器,就用键盘。

原理也简单,代码和鼠标进不去,但键盘焦点能啊。我直接按 Tab 键就能无视 Shadow DOM。而且,更像人的操作。

具体操作也很简单:

1. 用影刀控制鼠标,点击 容器的最左侧边缘(这一步相当于把键盘焦点"空降"到页面最底部该容器区域)。

?? 影刀"点击元素"指令默认点正中心,在其他一些场景容易误触内部按钮,所以需要偏移到容器的左上角或右上角边缘空白处。这里点击的目的只是获取焦点,不是触发任何操作。

image_9

2. 然后模拟键盘按下 Tab 键,焦点会自动落到"暂存离开"上。再按一次 Tab,焦点落到红色的"发布"按钮上。最后模拟键盘按下 Enter,完成发布。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标?~

谢谢你看我的文章,我们下篇分享再见。

-END-

  • 爱练字的ISTJ型互联网人/信息整合怪/工具人/影刀高级认证工程师。
  • 专注分享:RPA&AI自动化场景提效方案、效率软件安利、实用技能。"所有的生产要素都可以被构建,只有认知是壁垒",欢迎関注 [@掌心向暖RPA

推荐阅读:

  • 拒绝品牌碰瓷!如何通过影刀RPA为品牌IP搭建一套高效的“内容合规治理”工作流?
  • 那些拥有上千浏览器书签/收藏夹的电脑用户,是怎么管理书签的?
  • 不会编程的我开发了一款近900行指令的自动化RPA应用,完美解决98%以上复制受限的飞书文档!!
  • 飞书文档附件文件下载RPA方案2.0来了!不仅是PDF,Word、PPT、Excel、视频都能批量导出了,还都是源文件
http://www.jsqmd.com/news/899456/

相关文章:

  • 2026年值得推荐的原装进口艺术漆榜单:意大利石灰基、矿物、灰泥艺术涂料与德系精工谁更强? - 资讯纵览
  • 2026年5月知网AI率突然飙升?4款降AI软件深度推荐+实测 - 我要发一区
  • 从开题到定稿零返工:okbiye AI 毕业论文写作功能实测与流程拆解
  • 经济下行压力大,EB-Cable的license费用怎么砍?我这儿有几招狠的
  • Android开发转AI Agent:第2天——temperature调到1.5,LLM开始胡说八道
  • 4款降AI软件实测红黑榜:2026年5月哪个能真的去AI痕迹 - 我要发一区
  • 解耦异构算力与多协议接入:基于Docker与源码交付的开源企业级GB28181/RTSP边缘计算AI视频管理平台架构深度解析
  • 2026年跨境POD系统选购指南:风擎科技等主流方案深度对比 - 资讯纵览
  • IT之家:解构2026年GEO服务商五强——格局、壁垒与唯一性 - 罗兰艺境GEO
  • 从CMS内卷到ZGC封神!深度拆解GC分代模型与三大收集器优缺点+生产调优实战
  • 从泥泞中走来:一个普通人的十五年
  • 卫浴空间台面材料选型分析:高端亚克力人造石的性能优势与工程适配
  • 浩卡联盟推广手机卡真的靠谱吗?2026佣金置顶全网最高结算率98%以上 - 流量卡代理招商
  • 【实战指南】基于MATLAB GUI的指纹识别系统:从图像预处理到特征匹配全流程解析
  • 关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
  • 2026年全国对讲机优选厂家榜单:从“能用”到“耐用”,为何驰尔达成为3000+客户的首选? - 资讯纵览
  • P15366 [IOI 2013] Cave
  • List<T> 投影转换(Select)作用 + 详解 + 示例
  • 双重引擎:量子计算与AI如何将人类文明推向恒星时代
  • 2026毕业季降AI软件红黑榜:4款工具一次过知网维普AIGC - 我要发一区
  • 杰理AC696N蓝牙音频芯片开发TWS真无线立体声-开发指南(上):使能与配对配置
  • 终极鼠标加速指南:Raw Accel 7大曲线类型深度解析与实战配置
  • Figma的组件系统是如何工作的?
  • Figma组件系统的优势有哪些?
  • 嵌入式 - 数据结构与算法:(1-14)排序算法 - 冒泡/选择/快速/希尔排序对比
  • 2026实测横评:无水印视频下载神器怎么选?免费好用的无水印视频下载工具有哪些?6大维度深度对比 - 科技热点发布
  • 战略落地难?别让“空中楼阁”拖垮你的团队
  • 《原神》剧情又长又不能跳?试试这款开源免费“自动跳过”神器 | 支持6.6版本
  • Windows系统hid.dll文件丢失找不到问题解决
  • 2026年包头吊车租赁/吊车包月/吊车台班出租TOP榜单:全吨位吊装设备厂家优选与重型租赁服务深度解析 - 品牌企业推荐师(官方)