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

如何用BeautifulSoup通过属性获取meta标签的content值?

使用BeautifulSoup按属性键获取meta标签的content值

你可以通过以下两种方式实现需求:

1. 直接定位单个目标meta标签

利用find()方法,通过属性条件精准匹配目标meta标签,再提取其content属性值:

bs = BeautifulSoup(response.text, 'html.parser')
# 定位property为"og:image"的meta标签
og_image_tag = bs.find('meta', property='og:image')
# 确保标签存在后提取content值
if og_image_tag:
    og_image_content = og_image_tag.get('content')
    print(og_image_content)  # 输出:https://test.com/test.jp

如果要匹配http-equiv属性的标签,写法类似:

ua_compatible_tag = bs.find('meta', attrs={'http-equiv': 'X-UA-Compatible'})
if ua_compatible_tag:
    print(ua_compatible_tag.get('content'))  # 输出:IE=edge,chrome=1

2. 构建字典批量管理所有meta属性

如果需要频繁获取不同meta标签的content值,可以先把所有meta标签的属性键和对应content整理成字典,后续直接通过键名取值:

bs = BeautifulSoup(response.text, 'html.parser')
meta_map = {}

for meta in bs.find_all('meta'):
    # 处理带property属性的标签
    prop = meta.get('property')
    if prop:
        meta_map[prop] = meta.get('content', '')
    # 处理带http-equiv属性的标签
    equiv = meta.get('http-equiv')
    if equiv:
        meta_map[equiv] = meta.get('content', '')

# 按需取值
print(meta_map.get('og:image'))          # 输出:https://test.com/test.jp
print(meta_map.get('og:description'))    # 输出:mydescription
print(meta_map.get('content-style-type'))# 输出:text/css

注意

你之前尝试的metas.find('property:"og:image"')写法无效,因为find_all()返回的是ResultSet对象,它不支持这种字符串参数的查找方式,必须通过属性条件参数来定位标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:12:06