使用 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 requestsimport 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. 自動化與擴展
為了讓系統更加實用,我們可以通過以下方式擴展:
定期自動抓取數據:使用
cron
或Task Scheduler
來自動運行爬取腳本。增強數據清洗:過濾掉無效數據,處理缺失值。
接入 AI 預測銷售趨勢:利用機器學習分析銷量趨勢,提供商業決策建議。
結論
在本文中,我們學習了如何使用 Python 和 Luckdata API 來自動化獲取 Walmart 搜索數據,並進行數據存儲與分析。我們的系統可以幫助電商企業、數據分析師和開發者快速獲取市場信息,從而制定更優的商業策略。未來,這些數據還可以結合 AI 和大數據技術,進一步提升預測能力。如果你對數據爬取或分析有興趣,可以嘗試優化這個系統,讓它更加高效和智能!