影刀RPA实操指南_京东商品数据批量采集搜索页到详情页的完整抓取
2026/6/13 11:23:27 网站建设 项目流程

影刀RPA实操指南:京东商品数据批量采集——搜索页到详情页的完整抓取

拼多多之外,京东是另一个常见的采集目标。但京东有自己的特点:反爬比拼多多严、SKU数据在详情页、价格会根据登录状态变化。

这篇专门讲如何用影刀RPA稳定采集京东商品数据。

京东采集前的准备

先理清你要采什么

京东商品数据分两个层次:

数据层次数据字段获取难度
搜索列表页商品名、价格(登录前参考价)、评价数、商品ID

| 商品详情页 | SKU详细价格、库存、规格参数、多图 | 中 |

如果只需要商品名和价格,列表页就够了。如果要规格参数和精确SKU价格,得进详情页。

要不要登录

京东不登录也能看价格,但:

拼多多店群自动化上架方案


  • 未登录的价格是"参考价",不是实际到手价
  • 登录后才能看到会员价/plus价格
  • 部分品类(如手机)未登录看到的是虚高价

建议:做竞品监控时,统一用未登录状态采集,保证数据口径一致。

搜索列表页采集

打开搜索页

# 直接构建搜索URL(比搜索框输入更稳定) URL格式:https://search.jd.com/Search?keyword={关键词}&page={页码} ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/eb63ec8b39fe4193afc1e7731ac2bb0e.png#pic_center) 例:https://search.jd.com/Search?keyword=羽绒服&page=1

注意:京东搜索页码是1开始,但URL里的page参数是奇数(1、3、5、7…)不是1、2、3。翻页逻辑要用page = page + 2

定位商品列表

京东搜索结果商品卡片的XPath:

# 商品列表容器 //ul[@id="J_goodsList"]/li[@class="gl-item"] # 商品名称 .//div[contains(@class,"p-name")]//em # 价格(未登录) .//div[contains(@class,"p-price")]//i # 评价数 .//div[contains(@class,"p-commit")]//a # 商品ID(从data-sku属性取) // li[@data-sku] → 属性值就是SKU_ID

实际捕获时:用影刀的"捕获元素"功能在京东搜索页上选一个商品卡片,然后手动改XPath为上面更通用的写法。

完整翻页采集流程

# 京东搜索结果翻页(特殊:奇数页码)keyword='羽绒服'max_pages=20# 最多采集20页all_data=[]forpage_numinrange(1,max_pages*2,2):# 生成奇数序列url=f'https://search.jd.com/Search?keyword={keyword}&page={page_num}'# 影刀:打开网页open_url(url)# 等待商品列表出现wait_element('//ul[@id="J_goodsList"]',timeout=30)# 等待价格加载(异步的)wait(2)# 采集当前页items=get_similar_elements('//ul[@id="J_goodsList"]/li[@class="gl-item"]')ifnotitems:break# 没有更多商品foriteminitems:title=get_text(item,'.//div[contains(@class,"p-name")]//em')price=get_text(item,'.//div[contains(@class,"p-price")]//i')sku_id=get_attr(item,'data-sku')all_data.append({'标题':title,'价格':price,'SKU_ID':sku_id})random_wait(2,5)# 翻页等待

商品详情页采集

从列表页拿到SKU_ID后,进详情页采集更丰富的数据:

# 京东商品详情页URL格式 https://item.jd.com/{SKU_ID}.html

详情页关键数据位置

# 商品名称(详情页) //div[@class="sku-name"] # 价格(会员价/普通价) //span[@id="jd-price"] # 商品规格参数表 //div[@id="detail"]//table[@class="parameter-list"] # 库存状态 //span[@id="store-prompt"] # 评价总数 //a[@id="comment-count"]

动态价格说明:京东的价格是通过API动态加载的,不是直接在HTML里。需要等待1~2秒让价格渲染出来,再捕获。

规避封禁的核心策略

TEMU店群如何管理运营?

京东的反爬比拼多多激进,实测有效的三条:

策略一:降低采集速度

列表页每页36秒,详情页每页510秒。比拼多多多等1倍。

策略二:使用合适的User-Agent

设置成Chrome 120正式版的UA,不要用Headless Chrome的UA(会被秒识别)。

策略三:随机访问路径

不要直接搜索→列表→翻页这种机械规律。在列表翻页中间偶尔点一下商品详情页,模仿真人浏览路径。

# 每翻3页,随机进1个商品详情页"浏览"一下ifpage_num%3==0:random_item_url=f'https://item.jd.com/{random_sku_id}.html'open_url(random_item_url)scroll_page(800)# 往下滚一屏random_wait(3,8)# 模拟阅读

数据存储建议

京东采集的数据建议存SQLite而不是Excel:

  • 每批次几千条很正常,SQLite处理速度远快于Excel
  • 便于按SKU_ID去重
  • 方便多次采集对比历史数据(价格趋势)

#影刀RPA #RPA自动化 #京东采集 #数据采集 #电商自动化

作者:林焱

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询