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

如何用BeautifulSoup提取网页商品名称与价格?求Python实现代码

使用BeautifulSoup提取商品名称与价格的完整实现

我来帮你搞定这个问题!首先咱们得先明确目标网页的结构——一般电商网站的商品列表都会有规律的HTML布局,我先拿一个常见的示例来演示,你可以对照自己的网页截图调整对应的选择器。

假设你的网页截图对应结构

你的截图里应该是这样的典型商品列表布局:

  • 每个商品是一个独立的卡片区块(带边框/背景的区域)
  • 卡片里有显眼的商品标题(比如“XX品牌无线耳机”)
  • 标题附近有价格标签(比如“¥199.00”)

对应的简化HTML结构大概是这样(你可以右键网页→查看网页源代码,找到和你截图匹配的结构):

<div class="product-list">
  <div class="product-item">
    <h3 class="product-title">XX品牌无线降噪耳机</h3>
    <span class="product-price">¥299.00</span>
  </div>
  <div class="product-item">
    <h3 class="product-title">XXX轻薄笔记本电脑</h3>
    <span class="product-price">¥4999.00</span>
  </div>
</div>

完整Python代码实现

首先确保你安装了必要的库:

pip install beautifulsoup4 requests

然后是提取代码:

from bs4 import BeautifulSoup
import requests

# 替换成你要爬取的目标网页URL
target_url = "https://your-target-website.com/product-page"

try:
    # 发送请求获取网页内容,如果是本地HTML文件,看下面的注释
    response = requests.get(target_url)
    response.encoding = "utf-8"  # 解决乱码问题,根据实际情况调整编码
    soup = BeautifulSoup(response.text, "html.parser")

    # 如果你是本地保存的网页文件,替换成这段代码:
    # with open("your-local-html-file.html", "r", encoding="utf-8") as f:
    #     soup = BeautifulSoup(f, "html.parser")

    # 找到所有商品项——这里的选择器要和你网页里的商品卡片标签/class对应
    all_products = soup.find_all("div", class_="product-item")

    print("提取到的商品信息:")
    print("-------------------")
    # 遍历每个商品,提取名称和价格
    for idx, product in enumerate(all_products, 1):
        # 提取商品名称:替换成你网页里商品标题对应的标签和class
        name = product.find("h3", class_="product-title").get_text(strip=True)
        # 提取商品价格:替换成你网页里价格标签对应的标签和class
        price = product.find("span", class_="product-price").get_text(strip=True)
        
        print(f"{idx}. 商品名称: {name} | 价格: {price}")

except Exception as e:
    print(f"出现错误:{e}")

关键说明

  • 选择器调整:你需要根据自己网页的实际HTML结构,修改find_all和find里的标签名(比如h3换成a)和class_值(比如product-title换成goods-name)——右键网页里的商品名称→检查元素,就能看到对应的标签和类名。
  • 去除冗余文本:get_text(strip=True)会自动去掉文本里的多余空格、换行符,让结果更整洁。
  • 本地HTML处理:如果你的截图对应本地保存的HTML文件,直接用注释里的代码替换请求部分即可。

预期提取结果

运行代码后,你会得到类似这样的输出:

提取到的商品信息:
-------------------
1. 商品名称: XX品牌无线降噪耳机 | 价格: ¥299.00
2. 商品名称: XXX轻薄笔记本电脑 | 价格: ¥4999.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:30:49