用Python爬取同类直播产品数据构建可落地的定价工具表
时间:2026年06月16日 10:42:51
来源:易频IT社区
前期准备
工具安装
本文使用的工具全开源免费,仅需安装Python 3.8+及2个第三方库,步骤如下:
1. 安装Python 3.8+:访问官方地址https://www.python.org/downloads/,下载对应操作系统(Windows/MacOS/Linux)的安装包,安装时务必勾选「Add Python to PATH」选项。
2. 安装第三方库:打开电脑终端(Windows按Win+R输入cmd回车,MacOS按Command+空格输入Terminal回车),依次输入以下2条命令并执行:
```bash
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
```
确定目标数据维度
本文爬取抖音直播同类商品的公开实时数据,只需爬取以下4个核心维度即可:
1. 直播间当前售价(单位:元)
2. 直播间已售件数(单位:件)
3. 商品上架时长(单位:小时,需后续计算)
4. 商品基础成本(此为你的自有数据,无需爬取)
第一步:轻量抖音同类直播商品爬虫编写
注意:仅爬取公开非登录可访问的实时榜单/推荐页数据,请勿爬取用户隐私或反爬严格的核心内容。
1. 打开任意文本编辑器(Windows用记事本/Notepad++,MacOS用TextEdit/VS Code),新建文件命名为`live_price_crawler.py`。
2. 复制以下完整可运行代码到文件中,替换代码里的`target_url`为你想要爬取的公开抖音直播同类商品页面(可从抖音「直播好物榜」「好物推荐同品类」PC网页端获取):
```python
import requests
import pandas as pd
import time
from datetime import datetime
--请替换下方参数--
target_url = "https://live.douyin.com/your-target-room-or-list-url" 替换为你的目标页面URL
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
"Referer": "https://live.douyin.com/"
}
max_pages = 3 爬取页数(建议1-3,避免触发反爬)
--
def get_live_products(page):
构造分页参数(根据具体页面调整,这里用通用好物榜/同品类列表的基础逻辑)
params = {
"page": page,
"timestamp": int(time.time())
}
try:
response = requests.get(target_url, headers=headers, params=params, timeout=10)
response.raise_for_status()
公开数据如果是静态HTML需用BeautifulSoup解析,这里简化为演示返回模拟数据(实际需根据页面结构调整)
演示数据:3个同类商品的信息
mock_data = [
{"price": 29.9, "sold": 1250, "create_time": "2024-06-01 10:00:00"},
{"price": 39.9, "sold": 890, "create_time": "2024-06-01 09:30:00"},
{"price": 24.9, "sold": 2300, "create_time": "2024-06-01 11:00:00"}
]
return mock_data
except Exception as e:
print(f"第{page}页爬取失败:{e}")
return []
def calculate_duration(create_time_str):
计算商品上架时长
create_time = datetime.strptime(create_time_str, "%Y-%m-%d %H:%M:%S")
now = datetime.now()
duration = (now - create_time).total_seconds() / 3600
return round(duration, 2)
if __name__ == "__main__":
all_products = []
for i in range(1, max_pages+1):
products = get_live_products(i)
all_products.extend(products)
time.sleep(2) 每爬1页休息2秒,避免触发反爬
处理数据
df = pd.DataFrame(all_products)
df["上架时长(小时)"] = df["create_time"].apply(calculate_duration)
df = df.drop("create_time", axis=1)
保存为CSV
df.to_csv("live_competitor_prices.csv", index=False, encoding="utf-8-sig")
print(f"爬取完成,共获取{len(df)}条竞品数据,已保存为live_competitor_prices.csv")
```
3. 实际使用时,需根据目标页面的具体HTML/JSON结构调整`get_live_products`函数的解析逻辑:
- 若目标是静态HTML,需额外安装`pip install beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple`,并用BeautifulSoup提取数据
- 若目标是动态加载的JSON,需打开浏览器开发者工具(F12),切换到「Network」→「XHR/Fetch」,刷新页面找到返回商品数据的接口,替换`target_url`为接口地址
第二步:Excel可落地动态定价表构建
打开刚保存的`live_competitor_prices.csv`,另存为`live_dynamic_pricing.xlsx`,按以下步骤操作:
1. 新建自有数据列:在现有列(price、sold、上架时长(小时))右侧依次添加:
- 列D:`基础成本(元)`(填入你的商品成本)
- 列E:`最低毛利率(%)`(填入你想设置的底线,比如30%)
2. 计算竞品核心指标:在现有列右侧添加:
- 列F:`竞品销量效率(件/小时)`:输入公式`=C2/B2`,回车后双击填充柄(单元格右下角小方块)
- 列G:`竞品加权售价(元)`:销量效率越高,加权占比越大,输入公式`=SUMPRODUCT(A:A,F:F)/SUM(F:F)`
3. 构建3种可落地定价策略表:在现有数据下方新建「定价策略输出区」:
- 区间1(流量款定价):
单元格A12:`流量款参考价(元)`
单元格B12:输入公式`=MAX(G20.8,D2(1+E2/100))`
解释:取“竞品加权售价打8折”和“成本×(1+最低毛利率)”的最大值,保证不亏本的前提下打价格战拉流量
- 区间2(利润款定价):
单元格A13:`利润款参考价(元)`
单元格B13:输入公式`=MAX(G21.2,D2(1+40/100))`
解释:取“竞品加权售价涨20%”和“成本×1.4”的最大值,保证较高利润
- 区间3(福利款定价):
单元格A14:`福利款参考价(元)`
单元格B14:输入公式`=MAX(G20.9,D2(1+15/100))`
解释:取“竞品加权售价打9折”和“成本×1.15”的最大值,用于整点秒杀/福袋兑换商品
4. 设置自动刷新提示:选中任意单元格,点击「视图」→「宏」→「录制宏」→「确定」→直接点击「停止录制」→右键点击Excel文件图标→「查看代码」→复制以下VBA代码到模块中:
```vba
Private Sub Workbook_Open()
MsgBox "请先运行Python爬虫更新live_competitor_prices.csv后,再打开此定价表!", vbInformation, "定价表更新提示"
End Sub
```
第三步:日常操作流程
日常直播前仅需3步即可完成定价:
1. 打开电脑终端,运行`python live_price_crawler.py`,获取最新竞品数据
2. 打开`live_dynamic_pricing.xlsx`,会弹出更新提示
3. 输入你的最新`基础成本(元)`和`最低毛利率(%)`,3种参考价会自动更新
常见卡壳问题解决
1. Python爬虫运行报错「连接超时」:检查目标页面是否为公开非登录可访问,或把`timeout`参数从10改为20
2. Excel公式计算错误「DIV/0!」:检查竞品「上架时长(小时)」是否为0,若为0可把列F公式改为`=IF(B2=0,0,C2/B2)`
3. Excel保存的CSV乱码:确保另存为「CSV UTF-8(逗号分隔)」格式