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

如何在未知属性名时筛选同时含指定属性值的HTML标签

提取同时包含指定属性值的HTML标签

你可以通过给BeautifulSoup的find_all()方法传入自定义判断函数,筛选出同时包含属性值ATTR1和ATTR2的标签。以下是完整实现代码:

from bs4 import BeautifulSoup

page_content = '''<a href="ATTR1">text1</a>
<div class="random_value" type="ATTR2">text2</div>
<script class="ATTR1" id="ATTR2">text3</script>
<span class="random_value" id="ATTR2">text5</span>'''

soup = BeautifulSoup(page_content, 'html.parser')

def has_both_attr_values(tag):
    # 获取标签所有属性的值组成的列表
    attr_values = list(tag.attrs.values())
    # 检查ATTR1和ATTR2是否同时存在于属性值中
    return "ATTR1" in attr_values and "ATTR2" in attr_values

# 筛选符合条件的标签
target_tags = soup.find_all(has_both_attr_values)

# 输出结果
for tag in target_tags:
    print(tag)

代码说明

  • 自定义函数has_both_attr_values会接收每个标签作为参数:
    1. 通过tag.attrs.values()获取该标签所有属性的取值,转成列表后方便判断
    2. 直接检查ATTR1和ATTR2是否同时存在于这些属性值中,返回布尔值作为筛选依据
  • 执行后会输出符合条件的标签:
    <script class="ATTR1" id="ATTR2">text3</script>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:20:30