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

如何用BeautifulSoup筛选DIV类中代表尺寸S的第二个参数元素?

BeautifulSoup精准筛选指定尺寸的DIV元素

可以直接在查找阶段完成筛选,无需先爬取所有元素再二次处理,分两种常见场景说明:

场景1:尺寸标识在class属性的第二个参数

如果目标DIV的class格式类似size-option S,第二个类名就是尺寸标记,直接用CSS选择器匹配:

from bs4 import BeautifulSoup

# 假设已完成页面解析得到soup对象
s_size_divs = soup.select('div.size-option.S')

也可以用find_all结合多class筛选:

s_size_divs = soup.find_all('div', class_=['size-option', 'S'])

场景2:尺寸文本是DIV的第二个子元素

如果尺寸值放在DIV的第二个子元素里(比如<div class="size-box"><span>编号</span><span>S</span></div>),可以用CSS选择器结合:has伪类(BeautifulSoup 4.7.0+支持):

# 定位包含第二个子元素为S的DIV
s_size_divs = soup.select('div.size-box:has(> span:nth-of-type(2):contains("S"))')

或者用自定义筛选函数配合find_all:

s_size_divs = soup.find_all(
    lambda tag: 
    tag.name == 'div' 
    and 'size-box' in tag.get('class', []) 
    and len(tag.find_all()) >= 2 
    and tag.find_all()[1].text.strip() == 'S'
)

关键提示

直接在查找阶段筛选能减少内存占用,提升爬取效率,尤其是页面元素数量较多时,优先用CSS选择器或带条件的find_all。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:52:08