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

如何使用BeautifulSoup的find_all方法匹配id前缀为指定值的div标签

解决方案

BeautifulSoup 支持两种常用方式实现属性值的前缀匹配:

方法1:正则表达式匹配

导入re模块,用正则开头匹配符^指定前缀即可:

import re
from bs4 import BeautifulSoup

# 筛选id以uni-item开头的div
items = soup.find_all('div', id=re.compile(r'^uni-item'))

正则规则里的^表示仅匹配字符串开头,避免匹配到包含该前缀但不是开头的属性值。

方法2:自定义过滤函数

如果不想引入正则模块,也可以用自定义函数判断前缀:

# 筛选id以uni-item开头的div,x为id属性值,先判断id存在再匹配前缀
items = soup.find_all('div', id=lambda x: x and x.startswith('uni-item'))

完整测试示例

from bs4 import BeautifulSoup
import re

html = '''
<div class="" style="" id="uni-item-229925"></div>
<div class="" style="" id="uni-item-223625"></div>
<div class="" style="" id="uni-item-229325"></div>
<div class="" style="" id="other-item-123456"></div>
'''

soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', id=re.compile(r'^uni-item'))

for item in items:
    print(item['id'])

运行后输出:

uni-item-229925
uni-item-223625
uni-item-229325

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:15:03