×

做京东关键字搜索系统 3 年,被接口坑到凌晨改代码的实战手记

Ed Ed 发表于2026-01-04 15:03:10 浏览55 评论0

抢沙发发表评论

排序陷阱:乱传sort参数,搜索结果全反了

做竞品监控时,老板要求 “按销量降序排序,抓 top30 的竞品”,我随手传了sort="sales",结果返回的全是销量最低的商品,导致监控数据完全失效,错过了大促前的竞品调价预警。
查了半天才知道,京东关键字接口的sort参数有严格取值,销量降序是sales_desc,升序是sales_asc,传sales会默认按 “综合排序”(不是销量) ,文档里只列了部分取值,很多排序字段要靠自己试。
---------------------------------------
{
	"items": {
		"page": "1",
		"url": "https://search.jd.com/Search?keyword=%E5%8D%8E%E4%B8%BAmatebook14",
		"keyword": "华为matebook14",
		"real_total_results": "2994",
		"total_results": "2994",
		"page_size": 32,
		"pagecount": "100",
		"_ddf": "fqx",
		"item": [
			{
				"title": "华为MateBook 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/382678/33/10256/43516/69554e51Fd7ab6750/85328b6bcf88c700.jpg",
				"price": "6499.00",
				"sales": 40000,
				"num_iid": "100229437226",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437226.html",
				"reviews": 20000
			},
			{
				"title": "华为MateBook 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/380343/19/17924/43852/69554e1eF76379c58/46edb69ed8759a78.jpg",
				"price": "5799.00",
				"sales": 40000,
				"num_iid": "100176738425",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100176738425.html",
				"reviews": 20000
			},
			{
				"title": "华为MateBook GT 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/379501/27/17861/48692/69554e4aF02cf1284/4b5d85c3b5a45a86.jpg",
				"price": "7499.00",
				"sales": 5000,
				"num_iid": "100229437208",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437208.html",
				"reviews": 2000
			},
			{
				"title": "华为MateBook 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/384245/38/4175/46631/69554e5cF299055d6/3014c5e05e4147af.jpg",
				"price": "6499.00",
				"sales": 40000,
				"num_iid": "100229437250",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437250.html",
				"reviews": 20000
			},
			{
				"title": "华为MateBook 14 店铺预装Windows版 轻薄笔记本电脑 2.8K OLED触控屏 酷睿UItra5 16G 1T 深空灰",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/380602/36/18361/43917/69554e26F8ee4bc2d/81c405e963e64232.jpg",
				"price": "5799",
				"sales": 40000,
				"num_iid": "100176738429",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100176738429.html",
				"reviews": 20000
			},
			{
				"title": "华为MateBook GT 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/384672/36/3457/48692/69554e56F4d3ef5b7/6ddf97c863de8af7.jpg",
				"price": "7499.00",
				"sales": 5000,
				"num_iid": "100229437244",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437244.html",
				"reviews": 2000
			},
			{
				"title": "华为MateBook 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/384721/16/2968/47723/69554e21Fffe4ed2a/30acc2a287ac5c1e.jpg",
				"price": "5799.00",
				"sales": 40000,
				"num_iid": "100176738427",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100176738427.html",
				"reviews": 20000
			},
			{
				"title": "华为MateBook 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/377430/27/18977/43721/69554e54F61444d68/1ad3cd0bca535525.jpg",
				"price": "6499.00",
				"sales": 40000,
				"num_iid": "100229437230",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437230.html",
				"reviews": 20000
			},
			{
				"title": "华为matebook14轻薄笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/296569/14/7110/41415/68244a20F0df9402f/7e4a9d04d587cf46.png",
				"price": "2689.00",
				"sales": 10000,
				"num_iid": "10139617789126",
				"seller": "Ultrabook商务本小店",
				"shop_id": "17195504",
				"detail_url": "https://item.jd.com/10139617789126.html",
				"reviews": 5000
			},
			{
				"title": "Hi MateBook 14 酷睿Ultra 2",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/382431/16/10152/45275/6954e434Ff4575b70/4c63275976630e6f.jpg",
				"price": "6299.00",
				"sales": 2000,
				"num_iid": "100277883964",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100277883964.html",
				"reviews": 2000
			},
			{
				"title": "华为MateBook GT 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/377205/24/20233/48759/69554e1bF9735c17f/9557d674eb890b21.jpg",
				"price": "6999.00",
				"sales": 5000,
				"num_iid": "100176738411",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100176738411.html",
				"reviews": 2000
			},
			{
				"title": "华为MateBook GT 14 Linux版",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/381779/26/11326/48759/69554e4fFbc264e00/f811547142b23080.jpg",
				"price": "6999.00",
				"sales": 5000,
				"num_iid": "100229437224",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100229437224.html",
				"reviews": 2000
			},
			{
				"title": "华为MateBook 14 Ultra AI全能本",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/378535/9/20847/115120/6954c7daF8a019f97/430b9808714a86f6.jpg",
				"price": "5799.00",
				"sales": 40000,
				"num_iid": "10103759260834",
				"seller": "华为小酷克专卖店",
				"shop_id": "12049068",
				"detail_url": "https://item.jd.com/10103759260834.html",
				"reviews": 20000
			},
			{
				"title": "【政府补贴】华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/384509/7/6173/99564/6958e910F02ffdd79/00227e8159b038bc.jpg",
				"price": "5799.00",
				"sales": 10000,
				"num_iid": "65512219101",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/65512219101.html",
				"reviews": 10000
			},
			{
				"title": "政府补贴  华为MateBook14 25款",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/378978/4/9950/91039/694a31faF08e72a6c/9c99e58136feffa4.jpg",
				"price": "5999.00",
				"sales": 3000,
				"num_iid": "10075922710113",
				"seller": "京东电竞官方旗舰店",
				"shop_id": "10393769",
				"detail_url": "https://item.jd.com/10075922710113.html",
				"reviews": 2000
			},
			{
				"title": "Hi MateBook 14 锐龙 200系列",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/380626/30/16638/48591/6954e438F455b4505/c7b9b910c1cc49bd.jpg",
				"price": "6199.00",
				"sales": 2000,
				"num_iid": "100289708048",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100289708048.html",
				"reviews": 2000
			},
			{
				"title": "华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/375281/23/21236/94747/694e48b5F1930f224/087e605c5356829f.jpg",
				"price": "6499.00",
				"sales": 10000,
				"num_iid": "10103194548646",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/10103194548646.html",
				"reviews": 10000
			},
			{
				"title": "华为MateBook 14 Ultra AI全能本",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/381261/37/12748/112430/6954c7d8F0e6f576e/83cb8a96a5139cc6.jpg",
				"price": "5799.00",
				"sales": 40000,
				"num_iid": "10103759260835",
				"seller": "华为小酷克专卖店",
				"shop_id": "12049068",
				"detail_url": "https://item.jd.com/10103759260835.html",
				"reviews": 20000
			},
			{
				"title": "Hi MateBook 14 酷睿Ultra 2代",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/378063/4/18281/45205/6954e437F5e2d8f28/10b43b6dc68b4fd4.jpg",
				"price": "7499.00",
				"sales": 2000,
				"num_iid": "100277887866",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100277887866.html",
				"reviews": 2000
			},
			{
				"title": "华为matebook14轻薄笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/296569/14/7110/41415/68244a20F0df9402f/7e4a9d04d587cf46.png",
				"price": "2789.00",
				"sales": 10000,
				"num_iid": "10139617789129",
				"seller": "Ultrabook商务本小店",
				"shop_id": "17195504",
				"detail_url": "https://item.jd.com/10139617789129.html",
				"reviews": 5000
			},
			{
				"title": "Hi MateBook 14 锐龙 200系列",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/382637/30/11665/42362/6954e402F82639ff1/7a46da2ba3505da1.jpg",
				"price": "6199.00",
				"sales": 2000,
				"num_iid": "100217084277",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100217084277.html",
				"reviews": 2000
			},
			{
				"title": "【政府补贴】华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/381522/8/14619/98748/6958e91fFabf2426c/7095b2f69d974b59.jpg",
				"price": "5799.00",
				"sales": 10000,
				"num_iid": "10103194548644",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/10103194548644.html",
				"reviews": 10000
			},
			{
				"title": "【政府补贴】华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/381501/24/8495/95723/694e48beFe6ebe815/7cacb7c606c03756.jpg",
				"price": "6499.00",
				"sales": 10000,
				"num_iid": "10103194548647",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/10103194548647.html",
				"reviews": 10000
			},
			{
				"title": "【政府补贴】华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/375103/13/18146/94070/694e48abFdfa23d07/7e6e714fc81b787f.jpg",
				"price": "6499.00",
				"sales": 10000,
				"num_iid": "10103194548645",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/10103194548645.html",
				"reviews": 10000
			},
			{
				"title": "华为MateBook 14 Ultra AI全能本",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/385391/31/251/116863/6954c7ddF74750c83/75530f29221a732c.jpg",
				"price": "5799.00",
				"sales": 40000,
				"num_iid": "10103759260841",
				"seller": "华为小酷克专卖店",
				"shop_id": "12049068",
				"detail_url": "https://item.jd.com/10103759260841.html",
				"reviews": 20000
			},
			{
				"title": "政府补贴  华为MateBook14 25款",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/376512/36/19426/90309/694a31f1F50582c3b/a4a28e7b896fae5f.jpg",
				"price": "5999.00",
				"sales": 3000,
				"num_iid": "10075922710112",
				"seller": "京东电竞官方旗舰店",
				"shop_id": "10393769",
				"detail_url": "https://item.jd.com/10075922710112.html",
				"reviews": 2000
			},
			{
				"title": "【政府补贴】华为笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/381291/10/14780/100177/6958e918F29f7e25c/8e1f998da1bf6036.jpg",
				"price": "5799.00",
				"sales": 10000,
				"num_iid": "10109249341545",
				"seller": "华为比特专卖店",
				"shop_id": "796063",
				"detail_url": "https://item.jd.com/10109249341545.html",
				"reviews": 10000
			},
			{
				"title": "华为MateBook14 25款国家补贴20%",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/379579/14/19701/78352/6955e0d3Fe77a6c40/6f5627ab5aba295c.jpg",
				"price": "6499.00",
				"sales": 3000,
				"num_iid": "10090623469751",
				"seller": "京东电竞官方旗舰店",
				"shop_id": "10393769",
				"detail_url": "https://item.jd.com/10090623469751.html",
				"reviews": 2000
			},
			{
				"title": "Hi MateBook 14 锐龙 200系列",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/380104/39/14588/43957/6954e404F3e20fa28/1684167c0423b2bb.jpg",
				"price": "6099.00",
				"sales": 2000,
				"num_iid": "100217084279",
				"seller": "华为京东自营旗舰店",
				"shop_id": "1000004259",
				"detail_url": "https://item.jd.com/100217084279.html",
				"reviews": 2000
			},
			{
				"title": "华为matebook14轻薄笔记本电脑",
				"pic_url": "https://img12.360buyimg.com/n2/s345x345_jfs/t1/295718/40/10820/34240/684fdc72F64661a9e/48547ee486c009e2.png",
				"price": "2389.00",
				"sales": 10000,
				"num_iid": "10139617789123",
				"seller": "Ultrabook商务本小店",
				"shop_id": "17195504",
				"detail_url": "https://item.jd.com/10139617789123.html",
				"reviews": 5000
			}
		]
	},
	"error_code": "0000",
	"reason": "ok",
	"secache": "b4f7b872ac8d3641d8acd4486d687696",

限流暴击:5 次请求就被封,大促前断了竞品监控

京东关键字接口的限流规则,是我见过最严格的 ——免费开发者仅 5 次 / 分钟请求限额,比评论接口(10 次 / 分钟)还严,超过后不仅返回429 Too Many Requests,还会直接封禁 IP 24 小时,连沙箱环境都不例外。
有次 618 大促前,我帮老板监控 10 个竞品 SKU 的价格,每 10 分钟搜索一次,1 小时内发了 6 次请求,结果 IP 被封,竞品监控直接中断。老板追责时,我才意识到限流的严重性 —— 免费版完全撑不起批量搜索,而企业版要 5000 元 / 月,短期内只能靠限流算法硬扛。
我用 “滑动窗口 + 指数退避” 写了限流类,严格控制请求频率,还加了失败重试(接口偶尔因网络延迟返回 504),从此再也没被封过:
python
运行
import time from collections import deque class JD SearchLimiter:    def __init__(self, max_calls=5, period=60):        """京东关键字接口限流:max_calls次/period秒(免费版5次/分钟)"""        self.max_calls = max_calls        self.period = period        self.call_timestamps = deque()  # 存储每次请求的时间戳        def can_call(self):        """判断是否可发起请求,可调用则记录时间戳"""        now = time.time()        # 移除周期外的请求记录        while self.call_timestamps and now - self.call_timestamps[0] > self.period:            self.call_timestamps.popleft()        if len(self.call_timestamps) < self.max_calls:            self.call_timestamps.append(now)            return True        return False        def wait_for_call(self, retry=3):        """等待到可请求状态,失败重试3次"""        wait_time = 0        for _ in range(retry):            if self.can_call():                return True, wait_time            # 指数退避等待(1s→2s→4s),避免频繁重试触发封禁            wait_time = (2 ** _) + 0.1            time.sleep(wait_time)        return False, wait_time # 示例:批量监控10个竞品的搜索结果 limiter = JD SearchLimiter(max_calls=5) keywords = ["无线蓝牙耳机", "机械键盘", "游戏鼠标"]  # 要监控的关键字 for keyword in keywords:    can_call, wait_time = limiter.wait_for_call()    if not can_call:        print(f"请求频繁,{keyword}监控失败,建议升级企业版")        continue    if wait_time > 0:        print(f"触发限流,等待{wait_time:.1f}秒后搜索:{keyword}")    # 发起搜索请求(省略具体逻辑)    print(f"正在搜索关键字:{keyword},获取竞品数据...")    time.sleep(1)  # 模拟请求耗时


群贤毕至

访客