BeautifulSoup选择子细微差异

本文通过实例对比了CSS选择器中使用与不使用'>'符号的区别。使用'>'仅选择直接子元素,而不包括孙子元素;不使用'>'则会选择所有后代元素,包括子元素及孙子元素等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

contents = soup.select("p > span")
contents = soup.select("p span")
注意:中间空格至少一个,多了也没事。
上面,中间加与不加>,选择的结果是不同的。
当加入>时,表示选择p标签下的子标签span,只选择其子标签span,对于子标签span下的嵌套的孙子标签span,则会在子标签span中包含返回,不再做为结果List中的一项。

当不添加>时,表示选择p标签下的所有子span,和孙子标签span。一个Span做为一个输出,多个嵌套时,输出多个。
测试如下数据:

testData = """<p>
<span style="font-size:18px;">
AAAAA
<span style="line-height:2;">BBBB</span>
<span style="line-height:2;">CCCC</span>
</span>
</p>"""
可以看到,span有嵌套。

soup.select("p span")输出结果:


soup.select("p > span")输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值