🥳加入无抓取社区领取您的免费试用,访问我们强大的网页抓取工具包!
返回博客

如何用Python爬取沃尔玛产品页面详情?

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

28-Mar-2025

为什么抓取沃尔玛数据?

沃尔玛是美国最大的电子商务平台之一,拥有数千种不同类别的产品。企业可以通过抓取沃尔玛数据来了解市场趋势并跟踪价格变化。它是各个行业和用例宝贵的数据来源。

沃尔玛还为每件商品提供用户评分和详细评论,这些评论人工阅读和分析起来可能很困难。通过抓取沃尔玛评论,我们可以驱动人工智能学习,研究用户对产品和卖家的意见和体验。

沃尔玛产品抓取工具能做什么?

本文中的沃尔玛产品详细信息抓取工具允许您快速从Walmart.com收集产品数据。

沃尔玛产品详细信息抓取工具可以抓取:

  • 价格
  • 描述
  • 评分
  • 搜索列表页面上的其他重要详细信息

好了,让我们深入了解如何构建您的沃尔玛产品抓取工具以轻松实现数据采集!

方法一:构建您的第一个 Python 沃尔玛抓取工具

步骤 1:先决条件

在深入神奇的网络抓取世界之前,让我们确保我们已准备好工具!

执行以下命令以确保您已设置 Python 环境。如果未安装,请先安装Python

Shell Copy
python --version

我们需要一些很酷的库才能使这项工作生效。使用此咒语(哦,我的意思是,命令)安装它们:

Shell Copy
pip3 install beautifulsoup4 playwright csv

安装后,在您的 Python IDE 中创建一个 Python 文件(scraper.py)并准备开始编码。

步骤 2:抓取沃尔玛产品详情页数据

在此示例中,我们将使用沃尔玛产品详情页作为我们的目标网站。

我们坚决保护网站的隐私。本博客中的所有数据都是公开的,仅用于演示抓取过程。我们不保存任何信息和数据。

沃尔玛产品详情页

我们将分析其 HTML 结构并提取以下数据:

  • 产品标题
  • 产品描述
  • 产品价格
  • 产品图片

获取产品 HTML 数据

首先,在前面创建的 scraper.py 文件中编写以下代码:

Python Copy
from playwright.sync_api import sync_playwright
from bs4 import BeautifulSoup
import csv

# 定义目标网站网址
url = "https://www.walmart.com/ip/NELEUS-Mens-Dry-Fit-Mesh-Athletic-Shirts-3-Pack-Black-Gray-Olive-Green-US-Size-M/439625664?classType=VARIANT"

# 使用 playwright 抓取网站
with sync_playwright() as p:
    # 启动浏览器
    browser = p.chromium.launch(headless=False)
    # 创建一个新页面
    page = browser.new_page()
    # 导航到目标网站
    page.goto(url)
    # 等待页面加载
    page.wait_for_load_state("load")
    # 获取页面内容
    html = page.content()
    # 关闭浏览器
    browser.close()

soup = BeautifulSoup(html, "html.parser")
print("成功抓取网站", soup.title.text)

在上面的代码中,我们使用 Playwright 获取网站的 HTML 内容,并使用 BeautifulSoup 解析它。我们首先定义了目标 URL,然后使用 Playwright 打开浏览器,访问页面,等待页面加载,检索内容,最后关闭浏览器。然后,我们使用 BeautifulSoup 解析 HTML 并打印页面标题。

您应该看到类似于此的输出:

成功抓取

但是,由于沃尔玛有反抓取措施,您可能会遇到以下消息:

成功抓取

这表明我们的脚本被检测为机器人。为避免这种情况,我们需要添加代码来模拟人类行为。别担心——稍后我们将讨论更好的方法来防止此类问题。

提取产品名称

在上一步中,我们成功检索了 HTML 内容。现在,我们将提取产品名称。

要从 HTML 中提取产品名称,我们首先需要找到包含它的 HTML 元素。使用浏览器的开发者工具(按 F12),单击工具左上角的箭头图标,然后单击页面上的产品名称。相应的 HTML 元素将突出显示。

产品名称 HTML 元素

我们可以看到产品名称位于 ID 为 main-title<h1> 标记内。使用 BeautifulSoup,我们可以提取其文本。让我们修改 scraper.py 来获取产品名称:

Python Copy
...
soup = BeautifulSoup(html, "html.parser")
product_name = soup.find("h1", id="main-title").text
print("产品名称:", product_name)

您应该会看到这样的输出,确认我们已成功检索产品名称:

检索产品名称

提取产品描述

经过上述操作,我们继续查找产品描述信息。我们可以看到产品描述信息位于 span 标签中,span 标签的 id 属性值为 product-description-atf,因此我们可以使用 BeautifulSoup 提取标签的内容。

产品描述

需要注意的是产品描述信息位于 span 下的 li 标签中,并且有多个 li 标签。我们需要遍历所有 li 标签来提取产品描述信息。让我们修改 scraper.py 文件来提取产品描述信息。

Python Copy
...
description_data = []
description_container = soup.find(id="product-description-atf")
description_lists = description_container.find_all("li")
for list in description_lists:
    description_data.append(list.text.strip())
print(description_data)

我们遍历查找所有 li 标签并将它们的内容保存在 description_data 中。最后,我们将看到以下输出

description_data

提取产品价格

接下来,我们提取产品价格信息。我们可以看到产品价格信息在 span 标签中,span 标签的 itemprop 属性值为 price,因此我们可以使用 BeautifulSoup 提取标签的内容。

产品价格

让我们修改 scraper.py 文件来提取产品价格信息。

Python Copy
...
price = soup.find("span", {"itemprop": "price"}).text.strip()
print(price)

您将看到以下输出:

沃尔玛产品价格抓取输出

提取产品图片

最后,我们提取产品图片信息。我们可以看到产品图片信息在 div 标签中,div 标签的 data-testid 属性值为 vertical-carousel-container,因此我们可以使用 BeautifulSoup 提取标签的内容。

沃尔玛产品图片

注意:这里产品描述信息在 div 下的 img 标签中,并且有多个 img 标签。我们需要遍历所有 img 标签来提取产品图片信息。因此我们可以使用 BeautifulSoup 的 get 方法提取标签的 src 内容。

让我们修改 scraper.py 文件来提取产品图片信息。

Python Copy
...
image_data = []
carousel_container = soup.find("div", {"data-testid": "vertical-carousel-container"})
images = carousel_container.find_all("img")
for image in images:
    image_data.append(image.get("src"))
print(image_data)

我们将看到以下输出:

沃尔玛图片抓取输出

步骤 3:导出数据

首先,我们将整合上一步的代码,并将完成的代码示例输出如下:

Python Copy
from playwright.sync_api import sync_playwright
from bs4 import BeautifulSoup
import csv

# 定义目标网站网址
url = "https://www.walmart.com/ip/Logitech-MX-Master-3S-Wireless-Performance-Mouse-Ergo-8K-DPI-Quiet-Clicks-USB-C-Black/731473988"

# 使用 playwright 抓取网站
with sync_playwright() as p:
    # 启动浏览器
    browser = p.chromium.launch(headless=False)
    # 创建一个新页面
    page = browser.new_page()
    # 导航到目标网站
    page.goto(url)
    # 等待页面加载
    page.wait_for_load_state("load")
    # 获取页面内容
    html = page.content()
    # 关闭浏览器
    browser.close()

soup = BeautifulSoup(html, "html.parser")


product_data = []

# 查找并获取产品名称
product_name = soup.find(id="main-title").text.strip()

# 查找并获取产品价格
price = soup.find("span", {"itemprop": "price"}).text.strip()

# 查找并获取产品图片
image_data = []
carousel_container = soup.find("div", {"data-testid": "vertical-carousel-container"})
images = carousel_container.find_all("img")
for image in images:
    image_data.append(image.get("src"))

# 查找并获取产品描述
description_data = []
description_container = soup.find(id="product-description-atf")
description_lists = description_container.find_all("li")
for list in description_lists:
    description_data.append(list.text.strip())


# 将抓取的数据添加到 product_data 列表
product_data.append({
    "产品名称": product_name,
    "价格": price,
    "图片": image_data,
    "产品描述": description_data,
})


# 将数据导出到 CSV 文件
with open("walmart.csv", mode="w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=product_data[0].keys())
    writer.writeheader()
    for data in product_data:
        writer.writerow(data)

print("成功导出到 CSV")

在上面的代码中,我们使用 BeautifulSoup 提取产品名称、描述、价格和图片信息。我们可以将它们全部保存到 CSV 文件中。

将抓取结果保存到 CSV

抓取 API:轻松获取沃尔玛数据

为什么使用 API 来检索沃尔玛产品详细信息?

1. 提高效率

手动搜索产品数据缓慢且容易出错。API 允许自动检索沃尔玛产品信息,确保快速且一致的数据收集。

2. 准确的实时数据

Scrapeless API 直接从沃尔玛产品页面提取数据,确保检索到的信息是最新的和准确的。这可以防止因手动输入延迟或数据源过时而造成的错误。

3. 适用于各种业务场景

  • 价格监控:比较竞争对手的价格并调整定价策略。
  • 库存跟踪:检查产品可用性以优化供应链管理。
  • 评论分析:分析客户反馈以改进产品和服务。
  • 市场研究:识别畅销产品并做出明智的业务决策。

沃尔玛产品 API 的费用是多少?

Scrapeless 为每个用户提供2 美元的免费试用。您可以从沃尔玛产品详细信息抓取工具中获得 1300 件产品,因此这些结果将完全免费!

如果您有很多抓取需求并希望获得更多附加工具:抓取浏览器、代理、通用抓取 API,请考虑订阅 Scrapeless。我们推荐每月 49 美元的入门计划。您不仅可以使用 Scrapeless 的所有服务,还可以获得 10% 的折扣(订阅计划越高,折扣越大)。

立即加入社区以获得免费试用

使用步骤

我们坚决保护网站的隐私。本博客中的所有数据都是公开的,仅用于演示抓取过程。我们不保存任何信息和数据。

步骤 1. 创建您的 API 令牌

要开始使用,您需要从 Scrapeless 仪表板获取您的 API 密钥:

  • 登录到Scrapeless 仪表板
  • 导航到API 密钥管理
  • 单击创建以生成您的唯一 API 密钥。
  • 创建后,只需单击 API 密钥即可复制它。
创建 Scrapeless API 令牌

步骤 2. 输入沃尔玛产品 API

  • 单击“数据”下的“抓取 API”
  • 找到 TikTok 并输入
Scrapeless 沃尔玛产品 API

步骤 3. 请求参数配置

沃尔玛参与者目前有三种抓取方案:

  • 沃尔玛产品详细信息:通过目标 URL 提取产品详细信息。
  • 关键字搜索结果:通过输入关键字提取搜索结果。
  • 评论抓取:提取产品的评论。
参数配置

准备好了吗?了解基本信息后,我们可以正式开始抓取数据!现在您只需要复制产品 URL 并粘贴到 url 参数中。

确认一切正确后,只需单击开始抓取即可轻松获得抓取结果。

抓取沃尔玛数据

结束语

抓取沃尔玛产品信息可以为想要进行竞争市场分析的企业和个人提供实际参考。但是,沃尔玛的反机器人防御系统可能会阻止您的请求并拒绝您的访问。

如何以最快捷的方式抓取沃尔玛产品数据?

沃尔玛产品 API 将帮助您摆脱困境!

立即试用 Scrapeless!

在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。

最受欢迎的文章

目录