主流电商平台商品详情页面解析示例
一、淘宝商品详情页解析
页面结构特点:
- 动态渲染:部分数据(如SKU信息)通过JavaScript异步加载。
- 防爬机制:频繁请求可能触发验证码。
- 数据加密:价格信息可能使用字体加密技术。
核心字段解析:
- 商品标题: css 体验AI代码助手 代码解读复制代码python title = soup.select_one('h1[data-spm="1000983"]').text.strip()
- 价格信息(需处理加密字体): python 体验AI代码助手 代码解读复制代码python price_text = soup.select_one('.tm-price').text price = re.search(r'\d+.\d+', price_text).group(0)
- SKU信息(动态加载,需分析AJAX请求): python 体验AI代码助手 代码解读复制代码python sku_script = soup.find('script', string=re.compile('skuMap')) if sku_script: sku_data = re.search(r'skuMap\s*:\s*({.*?})', sku_script.string) if sku_data: sku_json = json.loads(sku_data.group(1)) # 解析SKU数据...
- 店铺信息: ini 体验AI代码助手 代码解读复制代码python shop_name = soup.select_one('.slogo-shopname').text.strip()
二、京东商品详情页解析
页面结构特点:
- API接口清晰:大部分数据通过JSON接口返回。
- 价格保护:价格信息可能需要登录才能获取。
- 动态评论:评论数据通过分页API加载。
核心字段解析:
- 商品标题: ini 体验AI代码助手 代码解读复制代码python title = soup.select_one('.sku-name').text.strip()
- 价格信息(通过独立API获取): ini 体验AI代码助手 代码解读复制代码python price_url = f"https://p.3.cn/prices/mgets?skuIds=J_{item_id}" price_data = requests.get(price_url, headers=headers).json() price = float(price_data[0]['p'])
- SKU信息: ini 体验AI代码助手 代码解读复制代码python sku_url = f"https://item-soa.jd.com/getWareBusiness?skuId={item_id}" sku_data = requests.get(sku_url, headers=headers).json() # 解析SKU数据...
三、拼多多商品详情页解析
页面结构特点:
- 移动端优先:PC端页面简化,数据主要来自移动端API。
- 加密请求:请求参数和响应数据可能经过加密。
- 反爬严格:频繁请求会触发滑块验证。
核心字段解析(示例代码片段):
python
# 拼多多移动端API示例(实际需分析最新接口)
url = "https://apiv3.pinduoduo.com/api/item/get"
params = {
'item_id': item_id,
'pdduid': int(time.time() * 1000), # 模拟用户ID
'_': int(time.time() * 1000), # 时间戳
'random': random.random() # 随机数
}
headers = {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit',
'Referer': f'https://mobile.yangkeduo.com/goods.html?goods_id={item_id}',
# 其他必要请求头...
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
# 解析商品信息...
四、1688商品详情页解析
页面结构特点:
- 工厂实力展示:开头展示工厂资质、合作品牌等。
- 高清细节图:大尺寸、高清的产品细节图片。
- API支持:提供商品详情API接口,可获取结构化数据。
核心字段解析(使用1688 API示例):
python
api_base_url = "https://api.1688.com"
product_id = "商品ID"
headers = {
"App-Key": "你的App Key",
"App-Secret": "你的App Secret"
}
params = {
"product_id": product_id
}
response = requests.get(api_base_url + "/path/to/product/detail", headers=headers, params=params)
if response.status_code == 200:
data = response.json()
# 解析商品信息...
else:
print("请求失败")
五、唯品会商品详情页解析
页面结构特点:
- 简洁布局:聚焦促销信息和立即购买按钮。
- 品牌导向:强调品牌故事和正品保障。
核心字段解析(示例逻辑):
- 商品标题:直接从页面标题或商品名称标签提取。
- 价格信息:解析页面中的促销标签或独立价格模块。
- 品牌故事:从模块化内容中提取品牌背景或合作案例。
总结与注意事项
- 动态内容处理:淘宝、拼多多等平台需处理动态加载内容,可能需要分析AJAX请求或使用模拟浏览器工具。
- 反爬机制应对:合理设置请求头、使用代理IP、控制请求频率。
- API优先:京东、1688等平台提供API接口,优先使用以获取结构化数据。
- 数据合规性:遵守各平台《robots.txt》协议及相关法律法规,避免非法爬取。