如何使用BeautifulSoup4(BS4)提取HTML中各SKU对应的评分值
BeautifulSoup4提取SKU评分解决方案
你要提取的逗号格式评分4,0有两种稳定实现方式:
- 方法1:直接从
aria-label属性中提取现成的目标值,无需额外格式转换 - 方法2:读取结构化属性
data-rating的数值后,替换小数点为逗号得到目标值
完整可运行代码
from bs4 import BeautifulSoup # 填入你拿到的HTML内容 html = '''<span class="stamped-badge" data-rating="4.0" data-lang="es" aria-label="Rated 4,0 out of 5 stars">''' # 解析HTML,没有装lxml库的话可以替换为内置的html.parser soup = BeautifulSoup(html, 'lxml') # 定位到目标span标签 sku_badge = soup.find('span', class_='stamped-badge') # 方法1实现 rating_from_aria = sku_badge['aria-label'].split(' ')[1] print(rating_from_aria) # 输出结果:4,0 # 方法2实现 rating_from_data = sku_badge['data-rating'].replace('.', ',') print(rating_from_data) # 输出结果:4,0
方法选择建议
- 如果站点不同语言版本的
aria-label文本结构固定,优先用方法1,不需要处理格式转换 - 如果多语言场景下
aria-label文本结构会变化,优先用方法2,读取自定义属性的兼容性更高
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

