python采集京东商品详情页面数据,京东API接口,京东h5st签名(2023.08.20)

一、原理与分析


1、目标页面

https://item.jd.com/6515029.html

    在chrome中打开,按f12键进入开发者模式,找到商品详情数据接口,如下:

2、URL链接:

https://api.m.jd.com/?appid=pc-item-soa&functionId=pc_detailpage_wareBusiness&client=pc&clientVersion=1.0.0&t=1692499380806&body=%7B%22skuId%22%3A6515029%2C%22cat%22%3A%221316%2C1381%2C1391%22%2C%22area%22%3A%2225_2258_0_0%22%2C%22shopId%22%3A%221000099941%22%2C%22venderId%22%3A1000099941%2C%22paramJson%22%3A%22%7B%5C%22platform2%5C%22%3A%5C%221%5C%22%2C%5C%22specialAttrStr%5C%22%3A%5C%22p0ppppppppppp1pppppppppppp%5C%22%2C%5C%22skuMarkStr%5C%22%3A%5C%2200%5C%22%7D%22%2C%22num%22%3A1%2C%22bbTraffic%22%3A%22%22%7D&h5st=20230820104308635%3B9m99mz6itng955u3%3Bfb5df%3Btk02w99fb1bc541lMisxd2I5N0tm7s66XeObtysPWoIPlRdJ92-R1cXDBQzPnH5QrNdDMfm18N7zHpJuWML8dwJhOORi%3Bed6048632bdcf647c9a4db5b69b49569%3B4.1%3B1692499388635%3Bee3cf7f6b94dc20e9265d83066bb9ceece4bb89e2b7e8bf5afb1bfd928788174bfa06c210ddd4437d8a2e234330c3a3980acde1a10effcc27fd84ad69b6a255fa2bacbfc5a0cc8222e4ac53b669906820b1461c75971601a3f031b5c1f40b721502f3b79e32d29b726ebec75a213493a818f67211b187fcf51e032e0b772bee8c70e4a1d7502aa775b148a504a31d6272cc6f198b41da73fbe26adfe0d7e3723450ed4c906efbd52e0671d7ab8bd9af7bfc208a38071126c8c70d775962c87b10b611b4f8489070e9d264c47c25dbd35aabe0addff39a3c732105c114056f93a71acfb90156d61b39e11217d5bf21c2e&x-api-eid-token=jdd03GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNAAAAAMKCDJFEVIAAAAAC5FNEJMJ5UGYTMX&loginType=3&uuid=122270672.16893052418291576334291.1689305242.1692440521.1692498368.14

 3、标头:


:authority:
api.m.jd.com
:method:
GET
:path:
/?appid=pc-item-soa&functionId=pc_detailpage_wareBusiness&client=pc&clientVersion=1.0.0&t=1692499380806&body=%7B%22skuId%22%3A6515029%2C%22cat%22%3A%221316%2C1381%2C1391%22%2C%22area%22%3A%2225_2258_0_0%22%2C%22shopId%22%3A%221000099941%22%2C%22venderId%22%3A1000099941%2C%22paramJson%22%3A%22%7B%5C%22platform2%5C%22%3A%5C%221%5C%22%2C%5C%22specialAttrStr%5C%22%3A%5C%22p0ppppppppppp1pppppppppppp%5C%22%2C%5C%22skuMarkStr%5C%22%3A%5C%2200%5C%22%7D%22%2C%22num%22%3A1%2C%22bbTraffic%22%3A%22%22%7D&h5st=20230820104308635%3B9m99mz6itng955u3%3Bfb5df%3Btk02w99fb1bc541lMisxd2I5N0tm7s66XeObtysPWoIPlRdJ92-R1cXDBQzPnH5QrNdDMfm18N7zHpJuWML8dwJhOORi%3Bed6048632bdcf647c9a4db5b69b49569%3B4.1%3B1692499388635%3Bee3cf7f6b94dc20e9265d83066bb9ceece4bb89e2b7e8bf5afb1bfd928788174bfa06c210ddd4437d8a2e234330c3a3980acde1a10effcc27fd84ad69b6a255fa2bacbfc5a0cc8222e4ac53b669906820b1461c75971601a3f031b5c1f40b721502f3b79e32d29b726ebec75a213493a818f67211b187fcf51e032e0b772bee8c70e4a1d7502aa775b148a504a31d6272cc6f198b41da73fbe26adfe0d7e3723450ed4c906efbd52e0671d7ab8bd9af7bfc208a38071126c8c70d775962c87b10b611b4f8489070e9d264c47c25dbd35aabe0addff39a3c732105c114056f93a71acfb90156d61b39e11217d5bf21c2e&x-api-eid-token=jdd03GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNAAAAAMKCDJFEVIAAAAAC5FNEJMJ5UGYTMX&loginType=3&uuid=122270672.16893052418291576334291.1689305242.1692440521.1692498368.14
:scheme:
https
Accept:
application/json, text/javascript, */*; q=0.01
Accept-Encoding:
gzip, deflate, br
Accept-Language:
zh-CN,zh;q=0.9
Cookie:
shshshfpa=cb3af5e3-c2cf-dae5-48e3-c2331a38092a-1653253655; shshshfpx=cb3af5e3-c2cf-dae5-48e3-c2331a38092a-1653253655; __jdc=122270672; __jdu=16893052418291576334291; mba_muid=16893052418291576334291; wlfstk_smdl=4qftb0r6lu47t0sx6ovvi37no1pu4y49; 3AB9D23F7A4B3C9B=GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNA; retina=0; appCode=msc588d6d5; webp=1; visitkey=8718662230147716920; sc_width=1536; wxa_level=1; cid=9; jxsid=16924405174098442434; __jdv=122270672%7Cdirect%7C-%7Cnone%7C-%7C1692440521537; equipmentId=GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNA; fingerprint=ba1afe80c24e71237978e1b005ec6a48; deviceVersion=115.0.0.0; deviceOS=; deviceOSVersion=; deviceName=Chrome; warehistory="10072773656365,10072773656365,10072773656365,10072773656365,"; autoOpenApp_downCloseDate_autoOpenApp_autoPromptly=1692441025259_1; __wga=1692441027033.1692440547180.1691914712301.1691914712301.4.2; PPRD_P=UUID.16893052418291576334291-LOGID.1692441027044.644926152; __jd_ref_cls=MProductdetail_CouponFloorExpo; jsavif=1; __jda=122270672.16893052418291576334291.1689305242.1692440521.1692498368.14; token=a4d78cd04f402b3f7ad6a29e8af8aa6f,2,940277; __tk=krazkYhsAcgzjrhtAuewjueDjufpArg5BVoz4zttAzG,2,940277; 3AB9D23F7A4B3CSS=jdd03GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNAAAAAMKCDJFEVIAAAAAC5FNEJMJ5UGYTMX; _gia_d=1; __jdb=122270672.2.16893052418291576334291|14.1692498368; shshshfpb=xbVnfPmoZnca-0u5O8YJzHQ; areaId=25; ipLoc-djd=25-2258-0-0
Origin:
https://item.jd.com
Referer:
https://item.jd.com/
Sec-Ch-Ua:
"Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"
Sec-Ch-Ua-Mobile:
?0
Sec-Ch-Ua-Platform:
"Windows"
Sec-Fetch-Dest:
empty
Sec-Fetch-Mode:
cors
Sec-Fetch-Site:
same-site
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
X-Referer-Page:
https://item.jd.com/6515029.html
X-Rp-Client:
h5_1.0.0

4、接口返回数据:


其中包括:商品图片地址,商品价格,标题,等信息,正是我们所需要的。

(数据量太大,截了一小部分)

{"extendWarrantyInfo": {"descUrl": "https://baozhang.jd.com/static/serviceDesc","detailUrl": "https://b.jr.jd.com/service/serveIntroduce/#/introduce3?mainSkuId={mainSkuId}&brandId={brandId}&thirdCategoryId={cid3}&bindSkuId={bindSku}","serviceItems": [{

5、数据分析


(1)body参数

经过分析发现,URL里body包含请求参数详情,body经过了url编码,解码后如下:

{"skuId":6515029,"cat":"1316,1381,1391","area":"25_2258_0_0","shopId":"1000099941","venderId":1000099941,"paramJson":"{\"platform2\":\"1\",\"specialAttrStr\":\"p0ppppppppppp1pppppppppppp\",\"skuMarkStr\":\"00\"}","num":1,"bbTraffic":""}

(2)appid参数


指示接口类别,数据值如下:
appid=pc-item-soa  pc端数据详情;
appid=item-v3         数据版本v3;

(3)functionId参数


指示该接口的功能:
functionId=pc_detailpage_wareBusiness   pc端商品页面详情
functionId=pc_club_productCommentSummaries         pc端评论接口数据
functionId=recDivinerApi                          商品页有关数据
functionId=pctradesoa_getprice               返回价格信息

functionId参数不同,body里面的具体参数也不一样。

(4)x-api-eid-token参数


x-api-eid-token=jdd03GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNAAAAAMKCDJFEVIAAAAAC5FNEJMJ5UGYTMX

经测试,该 参数并不会被服务器校验,因此可忽略,不影响数据采集。

(5)h5st参数(数据签名)

h5st=20230820104308635%3B9m99mz6itng955u3%3Bfb5df%3Btk02w99fb1bc541lMisxd2I5N0tm7s66XeObtysPWoIPlRdJ92-R1cXDBQzPnH5QrNdDMfm18N7zHpJuWML8dwJhOORi%3Bed6048632bdcf647c9a4db5b69b49569%3B4.1%3B1692499388635%3Bee3cf7f6b94dc20e9265d83066bb9ceece4bb89e2b7e8bf5afb1bfd928788174bfa06c210ddd4437d8a2e234330c3a3980acde1a10effcc27fd84ad69b6a255fa2bacbfc5a0cc8222e4ac53b669906820b1461c75971601a3f031b5c1f40b721502f3b79e32d29b726ebec75a213493a818f67211b187fcf51e032e0b772bee8c70e4a1d7502aa775b148a504a31d6272cc6f198b41da73fbe26adfe0d7e3723450ed4c906efbd52e0671d7ab8bd9af7bfc208a38071126c8c70d775962c87b10b611b4f8489070e9d264c47c25dbd35aabe0addff39a3c732105c114056f93a71acfb90156d61b39e11217d5bf21c2e

h5st是京东数据签名参数,每个接口都需要。只有签名正确,服务器才会返回数据。不然就会出现多次请求偶尔返回一次数据的情况。
所以,要想采集到数据,必须得到h5st正确的签名。下面具体分析h5st的签名过程:

二、h5st签名分析


1、查找h5st签名算法的位置


全局搜索:getDataColor,为什么要搜索getDataColor,因为h5st算法就在这个函数的附近。
设下断点,刷新页面,截图如下:

可以直观的看到具体签名过程如下:

            try {var d = JSON.parse(JSON.stringify(r));d.body = SHA256(s).toString(),window.PSign.sign(d).then(function(e) {r.h5st = encodeURI(e.h5st);//......................}

 

签名语句:window.PSign.sign(d);
然后返回: r.h5st = encodeURI(e.h5st);
是一个异步过程。


2、下面具体分析各个签名参数:

(1)body参数

{"skuId":6515029,"cat":"1316,1381,1391","area":"25_2258_2261_6568","shopId":"1000099941","venderId":1000099941,"paramJson":"{\"platform2\":\"1\",\"specialAttrStr\":\"p0ppppppppppp1pppppppppppp\",\"skuMarkStr\":\"00\"}","num":1,"bbTraffic":""}

(2)d参数:


{"appid": "pc-item-soa","functionId": "pc_detailpage_wareBusiness","client": "pc","clientVersion": "1.0.0","t": 1692498783586,"body": "dddd48059b91f87eb42b080167bd70b5303b3df8c4b71a3967372fcda60cd496"
}

d.body = SHA256(s).toString() 
按f11单步跟进,发现SHA256的位置。抠下来:

(3)t参数


t:a
a = (new Date).getTime()
t参数是一个时间戳。

签名参数分析完了,下面寻找h5st签名算法。

3、h5st签名算法


在window.PSign.sign(d)处下断点,按f11键单步进入:

进入h5st签名的js文件后,把该签名文件整个保存下来。该js文件名为:js_security_v3_0.1.4.js

4、h5st签名返回字符串:

{"appid": "pc-item-soa","functionId": "pc_detailpage_wareBusiness","client": "pc","clientVersion": "1.0.0","t": 1692498783586,"body": "dddd48059b91f87eb42b080167bd70b5303b3df8c4b71a3967372fcda60cd496","_stk": "appid,body,client,clientVersion,functionId,t","_ste": 1,"h5st": "20230820131419818;9m99mz6itng955u3;fb5df;tk03w9d441cbf18nk990HQLMH0ehQyR5j8EBXtSrYlGtY8KzYUkKCoUctg6u1pqtBeAqYw-t1yFcromGuN17RlgILtyk;65001318ffed0d17ee21652afb01a996;4.1;1692508459818;ee3cf7f6b94dc20e9265d83066bb9ceece4bb89e2b7e8bf5afb1bfd928788174bfa06c210ddd4437d8a2e234330c3a3980acde1a10effcc27fd84ad69b6a255fa2bacbfc5a0cc8222e4ac53b669906820b1461c75971601a3f031b5c1f40b721502f3b79e32d29b726ebec75a213493a818f67211b187fcf51e032e0b772bee8c70e4a1d7502aa775b148a504a31d627d6db4fde5974622b566cdace3d88a8999574369ad4a27c752e256a8a6d92a5fdfa8633dae1aa5d17f9ea6a859ed6b22c920d7881227b2f7f61f3bbf82c17afd340c42be154e8e3ad1d39c2d8ba94acb84c25299080b5545acc894168647303ed"
}

 

其中的h5st字段是我们所需要的。

三、在python等其它语言中调用签名接口


js_security_v3_0.1.4.js是具体的签名文件,但还不能在python中直接调用,会报缺少window的错误,因此需要补环境。
技术支持:v+:byc6352
下面的python代码是调用签名及请求接口(环境已补):

 


# -*- coding: UTF-8 -*-
import requests,json
import pkgutil
import time
from urllib.parse import urlparse, parse_qs, urlunparse
import hashlib
import execjs
from urllib.parse import quote
import io
import sysdef savetofile(text,filename):file = open(filename, "w",encoding='utf-8' )file.write(text)file.close()def print_hi(name):# Use a breakpoint in the code line below to debug your script.print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.def jd(skuid):appid='item-v3'functionId='recDivinerApi'body={"lid":27,"lim":15,"ec":"utf-8","uuid":"16900368971511636315768","pin":"","p":902029,"sku":skuid,"ck":"pin,ipLocation,atw,aview","c1":1316,"c2":1387,"c3":11932,"securityToken":"iJJJBrR7BAxWWavOluQxmMQ","clientChannel":"3","clientPageId":"item.jd.com"}js_file = open("h5st.js", "r", encoding='utf-8')js=js_file.read()exc = execjs.compile(js)url= exc.call("sign", appid,functionId,body)print('url='+url)headers={"Authority": "api.m.jd.com","Accept": "application / json, text / javascript, * / *; q = 0.01","Accept - Encoding": "gzip, deflate, br","Accept - Language": "zh - CN, zh;q = 0.9","Cookie": "shshshfpb=i0ZU6VlHi9tt1RukWDDyR0w; 3AB9D23F7A4B3C9B=GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTJKNBR32WP5NA7JKC4CLDZDF5AIRXNA; shshshfpa=cb3af5e3-c2cf-dae5-48e3-c2331a38092a-1653253655; shshshfpx=cb3af5e3-c2cf-dae5-48e3-c2331a38092a-1653253655; __jdc=122270672; __jdv=122270672|direct|-|none|-|1689305241830; __jdu=16893052418291576334291; areaId=25; ipLoc-djd=25-2258-2261-6568; token=7a3a5010c8ea7250057d9168270daacd,2,939221; __tk=be32047e11adf495830ad564f7c34cd6,2,939221; 3AB9D23F7A4B3CSS=jdd03GZSZ6SPDPJZS6ARBGAUDIS7NMVC2A24XK6SN4JCWH44HGMYJVGXZIEY2SHDTRiDY9CRQSU93J9SUTiPmFy3PTP7N8itsNd7DLuiPzfoEjAAACXCBKUWUQMP7FMX; _gia_d=1; jsavif=1; __jda=122270672.16893052418291576334291.1689305242.1690550636.1690599310.7; __jdb=122270672.1.16893052418291576334291|7.1690599310","Origin": "https://item.jd.com","Referer": "https://item.jd.com/","Sec-Ch-Ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\"","Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":"\"Windows\"","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-site","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36","X-Referer-Page": f"https://item.jd.com/{skuid}.html","X-Rp-Client": "h5_1.0.0",}res=requests.get(url=url, headers=headers)print(res)text=res.textsavetofile(text,"sku.txt")print(text)return text# Press the green button in the gutter to run the script.print_hi('最新4.1版本h5st签名返回商品详情。技术支持v+:byc6352')jd(100019322424)

四、在python中成功返回商品详情信息

Microsoft Windows [版本 10.0.19044.3086]
(c) Microsoft Corporation。保留所有权利。H:\works\python\jd\4.1\out2>jd.py
Hi, 最新4.1版本h5st签名返回商品详情。技术支持:byc6352
url=https://api.m.jd.com/?appid=item-v3&functionId=recDivinerApi&client=pc&clientVersion=1.0.0&t=1692509878057&body=%7B%22lid%22:27,%22lim%22:15,%22ec%22:%22utf-8%22,%22uuid%22:%2216900368971511636315768%22,%22pin%22:%22%22,%22p%22:902029,%22sku%22:100019322424,%22ck%22:%22pin,ipLocation,atw,aview%22,%22c1%22:1316,%22c2%22:1387,%22c3%22:11932,%22securityToken%22:%22iJJJBrR7BAxWWavOluQxmMQ%22,%22clientChannel%22:%223%22,%22clientPageId%22:%22item.jd.com%22%7D&h5st=20230820133758075;593z6tnmg99i35w5;fb5df;tk02wa3391be041lM3gxKzFicmVjS5x_DYghDeu-30Sas2-f-S8rm_rhDU-OUXMaLOnPBIE8i7fMeFlr_XbI3gvBpOYE;70b6156dc11975dea7c0bfa805b3fbca;4.1;1692509878075;2b0f65fd0c86579d589a5d495020e4f5edb4c586dd229606ec36b36d1af8562742f032b9ca22d042bde1d60c4619b633e282beb2d5983239a343bffe4ab8b0d133a1d30635e9ad22af639db74f6b884aeb38f00d67dcfc5952bb4c2d5d9f6841
<Response [200]>
{"encode":"utf-8","success":true,"error_msg":"","latency":32,"impr":"//knicks.jd.com/log/server?t=rec_common_exp&v=type=rec.902029$src=rec$action=0$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$csku=100007030209,100012854822,100036790006,100014687889,100049263283$st=0,0,0,0,0$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$expid=$mexpid=$gm=$rt=0,0,0,0,0$rid=4231306145027907055$ver=1$sig=29ea6ee5f90f5da1d9b67edd7d63c52851f5fc62","data":[{"bn":"爱马仕(HERMES)","broker_info":"eyJwIjoiOTAyMDI5IiwiY2x1c3Rlcl9pZCI6Imh0Iiwic291cmNlIjoiMCIsInRhZyI6IjE1MSIsImNzX3VzZXIiOiIyIiwicGFsYW50aXJfZXhwaWRzIjoiUnxSX1JfTEZpcnN0X0wxODQxNiIsImV4cGlkIjoiIiwicmVxc2lnIjoiYTI2MGE3ODY0Y2U3ODNmNjY1OTIyNjAwNThhN2RhYzk0YTQ3NjllMiJ9","bylkState":0,"c1":1316,"c2":1387,"c3":11932,"clk":"//knicks.jd.com/log/server?t=rec_common_clk&v=type=rec.902029$src=rec$action=1$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$csku=100007030209$index=0$st=0$adcli=$expid=$mexpid=$im=$rid=4231306145027907055$ver=1$sig=248d51e1865464f1e565d1ff84d17cc0c9071a42","extendParams":{},"imageid":0,"img":"jfs/t1/113502/18/37962/86070/64d48b1aFfc7d0e0a/5149af491d570758.jpg","impr":"1","interactiveTag":0,"itemid":"100007030209","jp":"1045.00","mp":"0","onTime":"2020-05-15 18:38:58.0","renl":0,"rn":"SKU","rt":"0","sku":100007030209,"spu":100023621742,"subTag":0,"subsku":[],"t":"爱马仕(HERMES)尼罗河花园淡香水100ml「气质启蒙香」 礼盒装生日礼 物 送老婆","tips":[{"t":9999,"v":"0"}],"turl":"","url":"","w":0.7627,"wt":"0.3700000047683716","wxspShopId":0,"wxspTag":0,"wxspVenderId":0},{"bn":"爱马仕(HERMES)","broker_info":"eyJwIjoiOTAyMDI5IiwiY2x1c3Rlcl9pZCI6Imh0Iiwic291cmNlIjoiMCIsInRhZyI6IjE1MSIsImNzX3VzZXIiOiIyIiwicGFsYW50aXJfZXhwaWRzIjoiUnxSX1JfTEZpcnN0X0wxODQxNiIsImV4cGlkIjoiIiwicmVxc2lnIjoiYTI2MGE3ODY0Y2U3ODNmNjY1OTIyNjAwNThhN2RhYzk0YTQ3NjllMiJ9","bylkState":0,"c1":1316,"c2":1387,"c3":11932,"clk":"//knicks.jd.com/log/server?t=rec_common_clk&v=type=rec.902029$src=rec$action=1$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$csku=100012854822$index=1$st=0$adcli=$expid=$mexpid=$im=$rid=4231306145027907055$ver=1$sig=dcc2f8d30919be54de3ffe48954d8fbd1dd1c9ee","extendParams":{},"imageid":0,"img":"jfs/t1/121121/29/35822/88302/64d211e2F37497a15/0b2c4773ac596d90.jpg","impr":"1","interactiveTag":0,"itemid":"100012854822","jp":"845.00","mp":"0","onTime":"2020-05-15 18:39:52.0","renl":0,"rn":"SKU","rt":"0","sku":100012854822,"spu":100012854824,"subTag":0,"subsku":[],"t":"爱马仕(HERMES)大地淡香水100ml「经典斩女香」礼盒装 送男友 七夕情人节","tips":[{"t":9999,"v":"0"}],"turl":"","url":"","vspu":"900051933","w":0.747,"wt":"0.6100000143051147","wxspShopId":0,"wxspTag":0,"wxspVenderId":0},{"bn":"爱马仕(HERMES)","broker_info":"eyJwIjoiOTAyMDI5IiwiY2x1c3Rlcl9pZCI6Imh0Iiwic291cmNlIjoiMCIsInRhZyI6IjE1MSIsImNzX3VzZXIiOiIyIiwicGFsYW50aXJfZXhwaWRzIjoiUnxSX1JfTEZpcnN0X0wxODQxNiIsImV4cGlkIjoiIiwicmVxc2lnIjoiYTI2MGE3ODY0Y2U3ODNmNjY1OTIyNjAwNThhN2RhYzk0YTQ3NjllMiJ9","bylkState":0,"c1":1316,"c2":1387,"c3":11932,"clk":"//knicks.jd.com/log/server?t=rec_common_clk&v=type=rec.902029$src=rec$action=1$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$csku=100036790006$index=2$st=0$adcli=$expid=$mexpid=$im=$rid=4231306145027907055$ver=1$sig=8b3faca3423cbc94520655a2c1b9f9a6204d6fae","extendParams":{},"imageid":0,"img":"jfs/t1/103388/22/42695/156052/64d2108eF65487372/6e6f8ed8b8ea4e84.jpg","impr":"1","interactiveTag":0,"itemid":"100036790006","jp":"900.00","mp":"0","onTime":"2022-04-20 10:14:25.0","renl":0,"rn":"SKU","rt":"0","sku":100036790006,"spu":100017523283,"subTag":0,"subsku":[],"t":"爱马仕(HERMES)律动二十四淡香水礼盒「100ml+12.5ml」送男友 七夕情人节","tips":[{"t":9999,"v":"0"}],"turl":"","url":"","w":0.6355,"wt":"0.7549999952316284","wxspShopId":0,"wxspTag":0,"wxspVenderId":0},{"bn":"爱马仕(HERMES)","broker_info":"eyJwIjoiOTAyMDI5IiwiY2x1c3Rlcl9pZCI6Imh0Iiwic291cmNlIjoiMCIsInRhZyI6IjUiLCJjc191c2VyIjoiMiIsInBhbGFudGlyX2V4cGlkcyI6IlJ8Ul9SX0xGaXJzdF9MMTg0MTYiLCJleHBpZCI6IiIsInJlcXNpZyI6ImEyNjBhNzg2NGNlNzgzZjY2NTkyMjYwMDU4YTdkYWM5NGE0NzY5ZTIifQ==","bylkState":0,"c1":1316,"c2":1387,"c3":1425,"clk":"//knicks.jd.com/log/server?t=rec_common_clk&v=type=rec.902029$src=rec$action=1$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$csku=100014687889$index=3$st=0$adcli=$expid=$mexpid=$im=$rid=4231306145027907055$ver=1$sig=ce64f4a1a6f1dafe1ea07f817e9b9cdf5285e2d1","extendParams":{},"imageid":0,"img":"jfs/t1/97260/29/32480/81384/64d20f51Fa73ff3e3/34c7c722de2e12a9.jpg","impr":"1","interactiveTag":0,"itemid":"100014687889","jp":"510.00","mp":"0","onTime":"2021-09-27 18:57:43.0","renl":0,"rn":"SKU","rt":"0","sku":100014687889,"spu":100014687889,"subTag":0,"subsku":[],"t":"爱马仕(HERMES)缎光唇膏21#「玫瑰甜茶」礼盒装 送女友送老婆 七夕情人节","tips":[{"t":9999,"v":"0"}],"turl":"","url":"","vspu":"900048524","w":1525.0193,"wt":"0.15000000596046448","wxspShopId":0,"wxspTag":0,"wxspVenderId":0},{"bn":"爱马仕(HERMES)","broker_info":"eyJwIjoiOTAyMDI5IiwiY2x1c3Rlcl9pZCI6Imh0Iiwic291cmNlIjoiMCIsInRhZyI6IjUiLCJjc191c2VyIjoiMiIsInBhbGFudGlyX2V4cGlkcyI6IlJ8Ul9SX0xGaXJzdF9MMTg0MTYiLCJleHBpZCI6IiIsInJlcXNpZyI6ImEyNjBhNzg2NGNlNzgzZjY2NTkyMjYwMDU4YTdkYWM5NGE0NzY5ZTIifQ==","bylkState":0,"c1":1316,"c2":1387,"c3":11932,"clk":"//knicks.jd.com/log/server?t=rec_common_clk&v=type=rec.902029$src=rec$action=1$reqsig=a260a7864ce783f66592260058a7dac94a4769e2$enb=1$sku=100019322424$p=902029$pin=$uuid=t5TDxd0qtFqbB9HpfQGZ2bUFqXo%2F7A3L$csku=100049263283$index=4$st=0$adcli=$expid=$mexpid=$im=$rid=4231306145027907055$ver=1$sig=c7f76e3ee03a13960a96864c8d9cabde1000efbd","extendParams":{},"imageid":0,"img":"jfs/t1/92531/15/30386/78047/64d213a8Fab509ce6/f850c32f24c35b6f.jpg","impr":"1","interactiveTag":0,"itemid":"100049263283","jp":"245.00","mp":"0","onTime":"2022-12-27 10:44:37.0","renl":0,"rn":"SKU","rt":"0","sku":100049263283,"spu":100049263283,"subTag":0,"subsku":[],"t":"爱马仕(HERMES)屋顶花园系列淡香水15ml 礼盒装 礼物 送女友 七夕情人节","tips":[{"t":9999,"v":"0"}],"turl":"","url":"","w":211.1805,"wt":"0.14000000059604645","wxspShopId":0,"wxspTag":0,"wxspVenderId":0}],"recmode":"Broadway","error_code":0,"requestid":"a260a7864ce783f66592260058a7dac94a4769e2","diversity_index":0,"site":"CN","diversity_index_mixer":0,"extData":[]}

大功造成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/98043.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记整理-面向对象-03-构造函数

一、构造函数 1. 用new调用函数的四步走 new 函数();JS规定&#xff0c;使用new操作符调用函数会进行"四步走"&#xff1a; 函数体内会自动创建出一个空白对象函数的上下文(this)会指向这个对象函数体内的语句会执行函数会自动返回上下文对象&#xff0c;即使函数没…

通过Git使用GitHub

目录 一、建立个人仓库 二、配置SSH密钥 三、克隆仓库代码 四、推送代码到个人仓库 五、代码拉取 一、建立个人仓库 1.建立GitHub个人仓库&#xff0c;首先注册GitHub用户。注册好了之后&#xff0c;打开用户的界面 然后就是配置问题 配置好后拉到最下方点击create repos…

数据结构 | 堆

本文简要总结堆的概念。 更新&#xff1a;2023 / 8 / 20 数据结构 | 堆 堆概念方法插入步骤 删除步骤 示例大根堆堆插入删除堆排序 代码实现Python大根堆1.2. heapq 小根堆1.2. heapq 参考链接 堆 概念 如果谈到堆排序&#xff0c;那么必然要说说什么是 大根堆 max heap 和 …

redis--主从复制

redis主从复制 Redis 主从复制是一种用于实现数据复制和数据备份的机制&#xff0c;它允许将一个 Redis 服务器的数据复制到其他 Redis 服务器上。主从复制在 Redis 中通常用于构建高可用性架构、读写分离以及数据分析等场景。 主从复制的角色 主服务器&#xff08;Master&a…

【AI视频教程】只需5步,AI作出鸡你太美视频

1.视频效果 黄昏见证虔诚的信徒 2.准备工作 制作视频效果&#xff0c;需要准备下面3个条件&#xff1a; 准备stable diffusion的环境剪辑一段【鸡你太美】原版视频stable diffusion安装sd-webui-IS-NET-pro插件 2.1部署stable diffusion环境 部署步骤参考制作ikun图片的文章…

laravel框架中批量更新数据

在php框架中 tp中就有批量更新封装好的 SaveAll 在laravel中有批量插入没有批量更新操作;因此我们可以自己去封装一个 然后批量进行更新操作 封装参考代码: /*** 批量更新** param $tableName 表名称* param string $pk 更新的字段* param array $multipleData 要更新的数据*…

redis事务对比Lua脚本区别是什么

redis官方对于lua脚本的解释&#xff1a;Redis使用同一个Lua解释器来执行所有命令&#xff0c;同时&#xff0c;Redis保证以一种原子性的方式来执行脚本&#xff1a;当lua脚本在执行的时候&#xff0c;不会有其他脚本和命令同时执行&#xff0c;这种语义类似于 MULTI/EXEC。从别…

攻防世界-PHP2

原题 解题思路 这题需要查看页面的phps文件&#xff08;这玩意从没见过&#xff09;。phps的文件是存放php的源代码的&#xff0c;但是不是所有网站都有。 只要让传入的idadmin就可以得到key了。 但是直接传入admin不行。用burp编码。 结果还是不行&#xff1a; 那就再…

Windows安装 Elasticsearch 教程

下载地址 Past Releases of Elastic Stack Software | Elastic 解压 解压完的样子 进入BIN目录 D:\Develop\elasticsearch\elasticsearch-7.12.0\bin 按住shift 鼠标右键 打开 powershell 窗口 查看ES版本 .\elasticsearch.bat --version 出现问题了 警告&#xff1a;不赞成…

excel逻辑函数篇1

1、AND(logical1,[logical2],…)&#xff1a;用于测试所有条件是否均为TRUE 检查所有参数均为true&#xff0c;如果是则返回true 2、OR(logical1,[logical2],…)&#xff1a;用于测试是否有为TRUE的条件 如果任意参数值为true&#xff0c;即返回true&#xff1b;只有当所有参数…

视频云存储/安防监控/视频汇聚EasyCVR平台新增经纬度选取功能

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

绘制原型图的常用工具之墨刀

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.墨刀是什么 二.墨刀的作用 三.墨刀界…

react-native-webview使用postMessage后H5不能监听问题(iOS和安卓的兼容问题)

/* 监听rn消息 */ const eventListener nativeEvent > {//解析数据actionType、extraconst {actionType, extra} nativeEvent.data && JSON.parse(nativeEvent.data) || {} } //安卓用document&#xff0c;ios用window window.addEventListener(message, eventLis…

微信小程序胶囊位置计算,避开胶囊位置

由于小程序在不同的手机上顶部布局会发生变化&#xff0c;不能正确避开胶囊位置&#xff0c;所以通过官方给出的胶囊信息&#xff0c;可以计算出胶囊位置&#xff0c;并避开 图示例&#xff1a; 此处思路是&#xff0c;获取胶囊底部位置&#xff0c;并拉开10个px 计算出来的…

Maven方式构建SpringBoot项目

目录 1、创建maven项目 2、添加springboot相关依赖 3、配置启动端口 4、修改APP文件 5、配置controller 6、启动应用 1、创建maven项目 项目如下&#xff1a; 2、添加springboot相关依赖 <parent><groupId>org.springframework.boot</groupId><arti…

人工智能与云计算实训室建设方案

一、 人工智能与云计算系统概述 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一种模拟人类智能的科学和工程&#xff0c;通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域&#xff0c;包括机器学习、深度学习、自然…

函数(2)

6. 函数的声明和定义 6.1 函数声明&#xff1a; 1. 告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么。但是具体是不是存在&#xff0c;函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放…

系统架构设计专业技能 · 软件工程之需求工程

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

Redis高可用:哨兵机制(Redis Sentinel)详解

目录 1.什么是哨兵机制&#xff08;Redis Sentinel&#xff09; 2.哨兵机制基本流程 3.哨兵获取主从服务器信息 4.多个哨兵进行通信 5.主观下线和客观下线 6.哨兵集群的选举 7.新主库的选出 8.故障的转移 9.基于pub/sub机制的客户端事件通知 1.什么是哨兵机制&#xf…

Centos7安装docker后默认开启docker0的网卡|卸载默认网卡

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…