You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CSS选择器获取指定id div的前一个相邻div元素

结论

原生CSS目前没有标准的:item-before伪类可以直接选中前一个相邻兄弟元素,不过在BeautifulSoup环境下有两种非常简单的实现方案,完全符合你「先让功能可用」的需求:


方案1:通过相邻元素属性获取(最稳定,兼容性最好)

先定位到固定带有id的#point元素,再调用BeautifulSoup内置的find_previous_sibling方法获取前一个相邻的div即可,完全不受目标div位置变化的影响:

from bs4 import BeautifulSoup

# 假设soup为已解析好的页面文档对象
point_node = soup.select_one('#main-container > div#point')
# 精准获取前一个相邻的div元素,自动忽略中间的空白文本/换行节点
target_div = point_node.find_previous_sibling('div')

方案2:用CSS :has()伪类实现(写法最简洁,一行搞定)

如果你使用的是4.7.0及以上版本的BeautifulSoup(目前主流版本均支持),可以直接用CSS的:has()伪类实现你要的选择逻辑:

target_div = soup.select_one('#main-container > div:has(+ div#point)')

上述选择器的逻辑就是:选中#main-container的直接子div,且这个div的下一个相邻兄弟是id为point的div,完全匹配你的需求。


内容的提问来源于stack exchange,提问作者TayIsAsleep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:48:04