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

如何用Python获取ul下的一级<li>元素?

解决方法:仅获取一级<li>元素

你的代码会获取所有匹配的<li>元素,是因为find_all默认会递归查找目标节点下的所有后代元素。要只拿到顶级的<li>(即直接属于ul.navigation的子元素),可以用以下两种方式实现:

方法1:使用recursive=False参数

先定位到顶级的ul容器,再通过recursive=False限制只查找它的直接子节点:

# 定位到指定的顶级ul
navigation_ul = soup_inicio.find('ul', {'class': 'navigation', 'id': 'news_ul'})
# 仅获取该ul的直接子li元素,不递归查找嵌套节点
top_level_items = navigation_ul.find_all('li', {'class': 'categories'}, recursive=False)
for item in top_level_items:
    print(item.text.strip())

方法2:使用CSS选择器(更简洁)

利用CSS的>选择器表示直接子元素关系,精准定位目标节点:

top_level_items = soup_inicio.select('div.menu ul.navigation > li.categories')
for item in top_level_items:
    print(item.text.strip())

两种方法都能得到你需要的结果:A、B、C、D。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:20:28