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

如何使用BeautifulSoup爬取HTML中品牌、口味等产品信息为键值对

解决方法

你可以通过遍历所有属性行的<tr>标签,分别提取左侧的属性名和右侧的属性值,直接拼装成你需要的键值对格式,参考代码如下:

from bs4 import BeautifulSoup

# 此处替换为你实际爬取到的页面HTML内容
html_content = """
<tr class="a-spacing-small">
<td class="a-span3">
    <span class="a-size-base a-text-bold">Flavour</span>
</td>
<td class="a-span9">
    <span class="a-size-base">Green Apple</span>
</td>
</tr>
<tr class="a-spacing-small">
<td class="a-span3">
    <span class="a-size-base a-text-bold">Brand</span>
</td>
<td class="a-span9">
    <span class="a-size-base">Carabau</span>
</td>
</tr>
"""

soup = BeautifulSoup(html_content, 'html.parser')
product_info = {}

# 遍历所有属性行的tr标签
for tr in soup.find_all('tr', class_='a-spacing-small'):
    # 提取左侧属性名
    key_td = tr.find('td', class_='a-span3')
    # 提取右侧对应属性值
    value_td = tr.find('td', class_='a-span9')
    if key_td and value_td:
        key = key_td.get_text(strip=True)
        value = value_td.get_text(strip=True)
        product_info[key] = value

# 按你需要的格式输出
for k, v in product_info.items():
    print(f"{k} - {v}")

输出结果

Flavour - Green Apple
Brand - Carabau

逻辑说明

  • 首先定位所有class为a-spacing-small的tr标签,每一行对应一个产品属性项
  • 每行内第一个class为a-span3的td文本就是属性名(比如口味Flavour、品牌Brand)
  • 每行内第二个class为a-span9的td文本就是对应的属性值
  • 键值对存入字典后既可以按要求格式打印,也可以直接用于后续数据处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:08