影刀RPA实操指南:京东商品数据自动化采集------自营、PLUS价与评价体系的应对策略
京东和其他电商平台最大的不同:它有自营和第三方两种模式、有PLUS会员价、评价体系也不一样。
而且京东的页面结构更"规整"一些------前端工程化程度高,class名经常变但结构相对稳定。

一、搜索URL与翻页
京东搜索的URL参数比较规范:
# 基础搜索
https://search.jd.com/Search?keyword=机械键盘&enc=utf-8
# 翻页:京东每页显示的是 2*page-1 和 2*page 的数据(两批加载)

# 实际翻页通过点击按钮,不建议手动拼接URL
京东列表页比较特殊------它分两次加载:先加载奇数行(第1行、第3行...),再加载偶数行。如果检测逻辑不对,会漏采集一半的商品。
建议用"等待元素出现"确保两批都加载完:
拼多多店群自动化报活动上架!
python
打开网页("https://search.jd.com/Search?keyword=机械键盘")
# 等第一批加载
等待元素出现("商品列表第一项", 5秒)
# 再等一下第二批
固定等待(2秒)

二、价格采集的两套体系
京东有自营和第三方,价格字段不同:
| 类型 | 价格特征 | 可能出现的位置 |
|---|---|---|
| 京东自营 | 显示自营标识"京东自营" | 固定价格,通常一个值 |
| 第三方店铺 | 没有自营标识 | 可能有活动价/原价双价格 |
| PLUS会员价 | 页面显示"PLUS价" | 需要PLUS会员登录 |
采集时的判断

python
# 判断是否自营
自营标识 = 获取元素文本("自营标记") # 例如 "京东自营"
如果 自营标识 和 "自营" in 自营标识:
类型 = "自营"
else:
类型 = "第三方"
# 采集价格
价格原始 = 获取元素文本("价格")
价格 = parse_price(价格原始) # 和淘宝的清洗逻辑类似
三、评价系统
京东的评价体系比淘宝复杂:

- 好评度:百分比,通常 > 95% 算优
- 评价数:累计评价总数
- 追评:用户回头再来评论的
- 视频/晒图:带图和视频的评价
列表页通常只显示好评度和评价数:
python
# 好评度://div[contains(@class,'comment')]//strong
好评文本 = 获取元素文本("好评度")
# 例如 "98%好评" → 清洗后得到 98
# 评价数
评价文本 = 获取元素文本("评价数")
# 例如 "50万+条评价" → 清洗后得到 500000

四、筛选条件的处理
京东的搜索筛选条件很丰富:价格区间、品牌、尺码、自营/非自营、促销、配送地区等。
自动化采集时,建议通过URL参数做筛选,而不是模拟点击:
TEMU店群矩阵自动化运营核价报活动

# 价格区间筛选
https://search.jd.com/Search?keyword=机械键盘&ev=exprice_100-500
# 自营筛选
https://search.jd.com/Search?keyword=机械键盘&shop=1
(具体参数需要抓包确认,京东的参数经常变)
如果URL方案不稳定,就老老实实模拟点击筛选按钮。
五、完整采集流程
python
# 京东商品采集
关键词 = "蓝牙耳机"
打开网页(f"https://search.jd.com/Search?keyword={关键词}&enc=utf-8")
# 等待首页加载
等待元素出现("商品列表区域", 8秒)
固定等待(2秒) # 等第二批加载
采集数据 = []
# 翻页(一次跳一页)
遍历范围(1, 6, 页码):
如果 页码 > 1:
点击元素("下一页按钮")
固定等待(3秒)
获取相似元素列表("商品卡片") -> 卡片列表
遍历列表(卡片列表, 卡片):
Try:
名称 = 获取元素文本(卡片 // 名称)

价格 = parse_price(获取元素文本(卡片 // 价格))
评价数文本 = 获取元素文本(卡片 // 评价数)
好评度 = parse_comment_rate(获取元素文本(卡片 // 好评度))
店铺 = 获取元素文本(卡片 // 店铺)
自营 = "自营" in 获取元素文本(卡片 // 自营标识)
采集数据.append({
"关键词": 关键词,
"商品名": 名称,
"价格": 价格,
"评价数": 评价数文本,
"好评度": 好评度,
"店铺": 店铺,
"是否自营": 自营
})
Catch:
继续循环
if len(采集数据) % 60 == 0:
输出日志(f"已采集{len(采集数据)}条")
六、京东反爬的特别注意事项
京东的反爬系统"京盾"比较成熟,注意几点:
- 降低频率:京东比淘宝更敏感,采集间隔设长一些(5~8秒一个商品)
- 不要用无头模式:京东能检测到headless浏览器
- 保持浏览器窗口可见:不要最小化
- 避开大促期间:618、双11期间反爬会加强
- IP不要频繁变化:固定IP采集

作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
