使用 Python 構建 Walmart 搜索數據爬取系統(附代碼)

引言

在電商行業中,獲取準確且即時的搜索數據對於市場分析、競爭研究和產品選品至關重要。Walmart 作為全球最大的零售商之一,擁有大量的商品數據,企業和個人開發者可以通過爬取其搜索結果來獲取有價值的信息。本文將介紹如何使用 Python,結合 Luckdata API,自動化爬取 Walmart 的搜索數據,並進行數據存儲與分析。

1. 為什麼要爬取 Walmart 搜索數據?

1.1 商業價值

  • 市場趨勢分析:通過收集搜索數據,分析消費者對不同產品的需求變化。

  • 競品研究:監測競爭對手的產品排名、價格變動和銷量情況。

  • 庫存與價格調整:電商賣家可以根據市場行情調整價格策略和庫存管理。

1.2 技術價值

  • 自動化數據抓取:通過 API 或爬取技術定期獲取數據,減少人工操作成本。

  • 結構化數據處理:將獲取的數據存入數據庫,便於後續分析和機器學習應用。

2. 使用 Luckdata API 來抓取 Walmart 搜索數據

Luckdata 提供了專業的 Walmart API,允許開發者高效地獲取搜索結果。我們可以使用其 API 來獲取與特定關鍵字相關的商品數據,包括標題、價格、評分、評論數等資訊。

2.1 API 介紹

Luckdata 的 Walmart API 支持通過關鍵字搜索產品,API 調用格式如下:

GET /api/walmart-api/{API_KEY}?url=https://www.walmart.com/search?q={keyword}

其中:

  • {API_KEY} 是你的 Luckdata API 密鑰

  • {keyword} 是你想要搜索的關鍵詞,例如 "samsung galaxy"

3. 使用 Python 調用 API 爬取數據

首先,確保你的開發環境已安裝 requests 庫:

pip install requests

3.1 Python 代碼示例

import requests

import json

# 設置 API Key

API_KEY = "your_key"

# 定義搜索關鍵詞

keyword = "samsung galaxy"

url = f"https://luckdata.io/api/walmart-api/{API_KEY}?url=https://www.walmart.com/search?q={keyword}"

# 設置請求頭

headers = {

"X-Luckdata-Api-Key": API_KEY

}

# 發送請求

response = requests.get(url, headers=headers)

# 解析 JSON 響應

if response.status_code == 200:

data = response.json()

print(json.dumps(data, indent=4, ensure_ascii=False))

else:

print(f"請求失敗,狀態碼: {response.status_code}")

4. 儲存數據到本地或數據庫

獲取數據後,我們可以將其存儲到 CSV 文件或數據庫中,以便後續分析。

4.1 存儲到 CSV

import csv

# 假設我們從 API 獲取的數據

products = [

{"title": "Samsung Galaxy S23", "price": "$799", "rating": "4.5", "reviews": "1200"},

{"title": "Samsung Galaxy S22", "price": "$699", "rating": "4.4", "reviews": "950"},

]

# 儲存為 CSV

with open("walmart_search_results.csv", "w", newline="", encoding="utf-8") as file:

writer = csv.DictWriter(file, fieldnames=["title", "price", "rating", "reviews"])

writer.writeheader()

writer.writerows(products)

print("數據已成功存入 CSV 文件")

4.2 存儲到 MySQL

import mysql.connector

# 連接 MySQL 數據庫

conn = mysql.connector.connect(

host="localhost",

user="root",

password="your_password",

database="walmart_data"

)

cursor = conn.cursor()

# 創建數據表

cursor.execute("""

CREATE TABLE IF NOT EXISTS walmart_products (

id INT AUTO_INCREMENT PRIMARY KEY,

title VARCHAR(255),

price VARCHAR(50),

rating VARCHAR(10),

reviews VARCHAR(10)

)

""")

# 插入數據

for product in products:

cursor.execute("""

INSERT INTO walmart_products (title, price, rating, reviews)

VALUES (%s, %s, %s, %s)

""", (product["title"], product["price"], product["rating"], product["reviews"]))

# 提交事務

conn.commit()

cursor.close()

conn.close()

print("數據已存入 MySQL")

5. 分析數據:挖掘市場趨勢

我們可以基於收集的數據進行簡單的分析,例如:

5.1 查找最受歡迎的產品

import pandas as pd

# 讀取 CSV 數據

df = pd.read_csv("walmart_search_results.csv")

# 依據評分排序

top_products = df.sort_values(by="rating", ascending=False)

# 顯示前 5 名商品

print(top_products.head())

5.2 可視化數據

import matplotlib.pyplot as plt

# 轉換數據類型

df["rating"] = df["rating"].astype(float)

# 繪製評分分佈圖

plt.hist(df["rating"], bins=10, color="blue", alpha=0.7)

plt.xlabel("評分")

plt.ylabel("產品數量")

plt.title("Walmart 搜索產品評分分佈")

plt.show()

6. 自動化與擴展

為了讓系統更加實用,我們可以通過以下方式擴展:

  • 定期自動抓取數據:使用 cronTask Scheduler 來自動運行爬取腳本。

  • 增強數據清洗:過濾掉無效數據,處理缺失值。

  • 接入 AI 預測銷售趨勢:利用機器學習分析銷量趨勢,提供商業決策建議。

結論

在本文中,我們學習了如何使用 Python 和 Luckdata API 來自動化獲取 Walmart 搜索數據,並進行數據存儲與分析。我們的系統可以幫助電商企業、數據分析師和開發者快速獲取市場信息,從而制定更優的商業策略。未來,這些數據還可以結合 AI 和大數據技術,進一步提升預測能力。如果你對數據爬取或分析有興趣,可以嘗試優化這個系統,讓它更加高效和智能!