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

如何使用find或find_all替代select实现网页元素遍历?

可以使用find相关方法实现完全相同的效果

你给出的text = soup.select('.css-lw5dil > .css-1p6sxhz')使用了CSS子代选择器,作用是匹配所有class为css-lw5dil的元素的直接子元素中、class为css-1p6sxhz的节点集合。等效的find写法如下:

text = []
# 先匹配所有父级元素
for parent in soup.find_all(class_="css-lw5dil"):
    # recursive=False 限制仅查询直接子元素,对应CSS选择器中的>符号
    child_nodes = parent.find_all(class_="css-1p6sxhz", recursive=False)
    text.extend(child_nodes)

补充说明

  • 如果你不需要严格限制为直接子元素,只是要查找css-lw5dil后代中所有带css-1p6sxhz类的元素,可直接简化为text = soup.find_all(class_="css-1p6sxhz"),对应CSS选择器.css-lw5dil .css-1p6sxhz的效果。
  • 如果只需要获取第一个符合条件的元素,将find_all替换为find即可,和select_one的返回结果一致。
  • 代码中用class_传类名参数,是因为class是Python的预留关键字,不能直接作为参数名使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:04