如何用Beautiful Soup解析非标准HTML标签中的scoreA属性值?
用Beautiful Soup解析非标准HTML标签的属性值
Beautiful Soup对自定义HTML标签的处理和标准标签完全一致,直接按常规方式操作就能拿到你要的scoreA值,具体步骤如下:
- 导入BeautifulSoup库
- 定义待解析的HTML内容
- 解析HTML并定位目标标签
- 获取目标属性值
完整代码示例
from bs4 import BeautifulSoup # 待解析的HTML内容(补全闭合标签更规范,不补全BeautifulSoup也能正常处理) html_content = ''' <score-bill scoreA="86" audiencestate="upright" data-qa="score-panel" data-scoresmanager="scorebill:scoreAction" id="scoreboard" mediatype="assetseries" rating="" skeleton="panel" scoreb="98" assetstate="active"> </score-bill> ''' # 创建解析对象,使用Python内置的html.parser解析器 soup = BeautifulSoup(html_content, 'html.parser') # 定位到score-bill标签,和查找div、p等标准标签的方法完全相同 score_bill_tag = soup.find('score-bill') # 获取scoreA属性的值:两种方式可选 # 方式1:用get()方法(属性不存在时返回None,更安全) score_a = score_bill_tag.get('scorea') # Beautiful Soup会自动将属性名转为小写 # 方式2:直接字典索引(属性不存在时会抛出KeyError) # score_a = score_bill_tag['scorea'] print(score_a) # 输出结果:86
关键说明
- 自定义标签(如
score-bill)无需特殊配置,find()、find_all()等方法均可正常识别 - Beautiful Soup解析时会将属性名统一转为小写,因此传入
scorea或原属性名scoreA都能获取到结果 - 如果不确定目标属性是否存在,优先使用
get()方法,避免程序报错
内容的提问来源于stack exchange,提问作者Lacer
相关产品推荐
相关产品推荐

