
本文介绍如何通过XPath的following-sibling轴精准选取紧邻某个已知文本节点之后的同级元素,特别适用于从结构化HTML中提取带标签的配套数值(如“Monthly:”后紧跟的配额数据)。
本文介绍如何通过xpath的following-sibling轴精准选取紧邻某个已知文本节点之后的同级
在网页数据提取任务中,常需根据可见标签文本(如“Monthly:”)定位其后关联的数值内容。上述HTML片段中,“Monthly:”位于第一个子
正确XPath表达式如下:
//*[normalize-space()='Monthly:']/following-sibling::div
✅ 解析说明:
- //*[normalize-space()='Monthly:']:查找任意位置、文本内容经空白归一化后等于“Monthly:”的元素(兼容前后空格或换行);
- /following-sibling::div:从此元素出发,选取其所有后续同级兄弟节点(注意:不是仅限“下一个”,而是全部后续同级div);
- 若确保目标唯一且紧邻,可进一步限定为首个匹配项:(//*[normalize-space()='Monthly:']/following-sibling::div)[1]。
⚠️ 注意事项:
- following-sibling 轴仅匹配同父级、且在当前节点之后的兄弟元素,不包含自身或祖先/后代;
- 若页面存在多个“Monthly:”,该表达式会返回所有匹配项后的所有后续div,建议结合上下文父容器约束范围,例如://div[@class='my-3']//*[normalize-space()='Monthly:']/following-sibling::div;
- 在Selenium或lxml等工具中使用时,确保文档已完全加载,且目标元素未被JavaScript动态隐藏或延迟渲染。
掌握following-sibling、preceding-sibling、parent等轴(axis)是编写稳定、语义化XPath的关键——它让定位逻辑从“第几个元素”升级为“某标签之后的数据”,显著提升脚本鲁棒性。

















