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

BeautifulSoup如何不区分大小写查找所有img标签

BeautifulSoup 不区分大小写匹配所有img标签的实现方案

直接传入字符串'img'调用findAll/find_all时,BeautifulSoup默认按大小写敏感规则匹配标签名,只能命中全小写的img标签,无法识别IMG/Img/iMg等任意大小写混合的写法,也不需要逐一枚举所有大小写组合,以下两种方案都可以实现全形式匹配:

  • 方案1:正则匹配(写法最简洁)
    导入re模块,传入开启了忽略大小写规则的正则对象作为标签名参数即可,正则会自动覆盖所有大小写组合,同时不会误匹配名称中带img字符的其他标签:

    import re
    # 旧版接口替换为soup.findAll即可,参数完全一致
    images = soup.find_all(re.compile('^img$', re.IGNORECASE))
    
  • 方案2:自定义匹配函数(无需依赖正则模块)
    传入一个判断函数,将标签名统一转为小写后再和目标标签名对比,逻辑可控性更强:

    def is_img_tag(tag):
        return tag.name.lower() == 'img'
    images = soup.find_all(is_img_tag)
    

注意:如果使用xml解析器处理XHTML/XML类内容,XML语法本身规定标签名大小写敏感,上述两种方案依然可以正常工作;如果使用常规HTML解析器(html.parser、lxml-html、html5lib),解析规范HTML时会自动将标签名归一化为小写,但遇到大小写混乱的畸形HTML页面时,直接传字符串'img'依然可能漏匹配,上述两种方案的兼容性更好。
你之前查到的大小写不敏感相关方案是针对标签属性匹配的逻辑,和标签名的匹配规则相互独立,无法直接复用在标签名匹配场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:42:30