獲取 1688 平臺商品數(shù)據(jù)需注意合規(guī)性,平臺對數(shù)據(jù)抓取有嚴(yán)格限制。
步驟1:合法性確認(rèn)與數(shù)據(jù)范圍界定
示例如下:
{
"result": {
"total": 1000, // 總商品數(shù)
"page_no": 1,
"page_size": 50,
"items": [
{
"product_id": "123456789",
"title": "2024新款純棉T恤男寬松",
"price": "29.9", // 起批量價格
"min_order_qty": 5, // 最小起訂量
"sale_num": 10000, // 30天銷量
"shop": {
"company_name": "XX服飾有限公司",
"location": "廣東廣州"
}
}
]
},
"code": 200,
"msg": "success"
}
步驟2:分析網(wǎng)站結(jié)構(gòu)與接口
- 手動探索頁面
- 訪問熱銷榜單頁面(如分類頁、活動頁),觀察URL結(jié)構(gòu)和分頁邏輯(如pageNum參數(shù))。
- 打開瀏覽器開發(fā)者工具(F12),切換到 Network 標(biāo)簽,篩選XHR/JS請求,尋找隱藏的API接口(可能返回JSON數(shù)據(jù))。
- 接口逆向
- 若找到數(shù)據(jù)接口(如/search/ajax/...),分析請求參數(shù)(如關(guān)鍵詞、分頁),模擬合法請求。
- 若需動態(tài)渲染,使用Selenium或Playwright模擬瀏覽器操作。
步驟3:反爬策略應(yīng)對
- 基礎(chǔ)偽裝
- 設(shè)置隨機(jī)User-Agent(通過fake_useragent庫輪換)。 添加常見請求頭(如Referer、Accept-Language)。
- 請求頻率控制
- 添加隨機(jī)延時(如time.sleep(random.uniform(1,3))),避免觸發(fā)封禁。 使用代理IP池(付費服務(wù)或自建代理,如Scrapy-Rotating-Proxies)。
步驟4:數(shù)據(jù)抓取與解析
方案A:直接調(diào)用API(推薦)
import requests
import json
# 配置信息
# 封裝好API供應(yīng)商wechat id: TaoxiJ demo url=o0b.cn/ibrad復(fù)制鏈接注冊測試
APP_KEY = "你的App Key"
ACCESS_TOKEN = "授權(quán)令牌"
API_URL = "https://api.aliyun.com/" # 1688 API通用入口
def get_1688_hot_products(keyword, page=1):
params = {
"Action": "alibaba.search.product.get",
"Version": "1.0",
"app_key": APP_KEY,
"access_token": ACCESS_TOKEN,
"keywords": keyword,
"page_no": page,
"page_size": 50,
"sort": "sale_desc" # 按銷量降序(熱銷排序)
}
response = requests.get(API_URL, params=params)
data = response.json()
return data
# 示例調(diào)用:獲取“T恤”的熱銷商品
hot_products = get_1688_hot_products("T恤", page=1)
print(json.dumps(hot_products, indent=2, ensure_ascii=False))
步驟5:數(shù)據(jù)存儲結(jié)構(gòu)化存儲
- 保存為CSV/JSON文件或云存儲(AWS S3)。
步驟6:注意事項
- 法律風(fēng)險
小規(guī)模數(shù)據(jù)用于個人分析可能風(fēng)險較低,但大規(guī)模商業(yè)用途需獲得授權(quán)。 - 道德約束
避免對目標(biāo)服務(wù)器造成過大負(fù)載,合理控制并發(fā)。 - 替代方案
考慮購買第三方供應(yīng)商與官方合作授數(shù)據(jù)服務(wù)。