手机京东保价在哪里申请(京东保价在哪里申请有效期)

京东保价自动化大促期间大家肯定都买了不少东西,有些商家喜欢偷偷降价,让我们觉得瞬间亏了一个亿。今天,我将为JD.COM创建一个自动保险脚本。获取保价列表首先,你

京东保价自动化

大促期间大家肯定都买了不少东西,有些商家喜欢偷偷降价,让我们觉得瞬间亏了一个亿。今天,我将为JD.COM创建一个自动保险脚本。

获取保价列表

首先,你需要登录JD.COM。这是在618!上面写着“JD。COM版抢卷”。可以用二维码查一下。

打开jd.com的投保页面(https://pcsitepp-fm.jd.com/),需要获取下方红框中的要素,包括名称、数量、购买价格。

京东保价在哪里申请(京东快递保价5000损坏怎么理赔)

按F12获取以下页面元素。

先放全局变量。

user _ agent = & # 39Mozilla/5.0(麦金塔;英特尔Mac OS X 10 _ 15 _ 4)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/81 . 0 . 4044 . 138 Safari/537.36 & # 39;Session = requests.session()下面的代码获取可以投保的订单列表,包括订单号、sku号和商品数量。有三个函数:get_PIN()函数获取PIN值,get_order_list()函数循环获取订单列表,skuProResultPC()函数判断此订单是否超过保险时间。

def get _ pin():& # 34;""获取PIN并使用正则表达式将其从页面中取出& # 34;""url = & # 34https://pcsitepp-fm.jd.com/" r = session . get(URL)log in pin = re . find all(& # 39;& lt输入类型= & # 34;隐藏& # 34;id = & # 34loginPin & # 34value = & # 34(\ w+)& # 34;/& gt;',r . text)pin = log in pin[0]if len(log in pin)>0 else None返回pindef get_order_list(pin,page _ num = 1):& # 34;""保险价格清单& # 34;""#存款订单信息order_info = [] #存款数量count _ dir = { } url = & # 34https://pcsitepp-fm.jd.com/rest/pricepro/priceskusPull"数据= { & # 34;第&#34页;:page_num,& # 34;pageSize & # 34:10 } headers = { & # 39用户代理& # 39;:用户代理,& # 39;Referer & # 39: 'https://pcsitepp-fm.jd.com/',} r = session.post (URL,headers = headers,data = data)# Order = r . text . split(& # 39;& lttr class = & # 34sep-row & # 34;& gt& lttd colspan = & # 346"& gt& lt/TD & gt;& lt/tr & gt;')orders . pop(0)for item in orders:# order no .orderid = re . find all(& # 34;订单号:(\ d+)& # 34;,item) #数量计数= re . find all(& # 39;& ltspan class = & # 34伯爵& # 34;& gt\ n([\ sx \ d]+)& lt;/span&gt。',item) # sku和商品序列号skuidandsequences = re . find all(& # 34;queryOrderSkuPriceParam\。skuidAndSequence\。推\(\ & # 34;(\d+\,\ d+)\ & # 34;\)\;",item)newSkuidAndSequences =[]# skuidAndSequences中ss的商品和订单商品序列号:#判断订单的保价是否超时如果skuproresultpc (orderid [0],ss . split(& # 39;,')[0],pin):newskuidandsessions . append(ss)if orderid[0]= = & # 39;117403228624':print(orderid[0])count _ ss = count _ html[int(ss . split(& # 39;,')[1])-1]count = count _ ss . replace(& # 39;\ t & # 39, '').替换(& # 39;\ n & # 39, '').替换(& # 39;x & # 39, '')#放& # 34;订单号_ sku & # 34as key count _ dir[orderid[0]+& # 39;_'+ss . split(& # 39;,')[0]]= count if newskuidandsessions:order _ info . append({ & # 39;订单编号& # 39;:orderid[0],& # 39;skuidAndSequence & # 39:newSkuidAndSequences })如果订单:& # 34;""递归方式获得所有商品& # 34;""bill_info_sub,count _ dir _ sub = get _ order _ list(pin,page _ num+1)order _ info . extend(bill _ info _ sub)count _ dir . update(count _ dir _ sub)return order _ info,count _ dirdef skuProResultPC(orderId,skuId,pin):& # 34;""判断订单是否投保加班& # 34;""url = & # 34https://sitepp-fm.jd.com/rest/webserver/skuProResultPC"数据= { & # 34;订单编号& # 34;:orderId,& # 34;skuId & # 34:skuId,& # 34;pin & # 34:pin } headers = { & # 39用户代理& # 39;:用户代理,& # 39;Referer & # 39: 'https://pcsitepp-fm.jd.com/',} r = session.post(url,data=data,headers = headers)return & # 39;加班& # 39;not r.text的示例结果

订单信息:[{ & # 39;订单编号& # 39;: '118598307636', 'skuidAndSequence & # 39: ['851267,1']}, {'订单编号& # 39;: '118597642910', 'skuidAndSequence & # 39: ['4389188,1']}, {'订单编号& # 39;: '123625659522', 'skuidAndSequence & # 39: ['69699954984,1']}, {'订单编号& # 39;: '123539553604', 'skuidAndSequence & # 39: ['6839875,1']}, {'订单编号& # 39;: '123474129967', 'skuidAndSequence & # 39: ['50000970588,1']}]商品数量{ & # 39;118598307636_851267': '10', '118597642910_4389188': '10', '123625659522_69699954984': '1', '123539553604_6839875': '4', '123474129967_50000970588': '1', '122842702447_31295640649': '1', '117403228624_31295640649': '1'}在获取保价列表中已经获取了商品的sku号,商品的url中最后一个数字(如https://item.jd.com/6839875.html)就是sku号,可以用来获取商品信息。

对元素的分析表明,在页面的js中,pageConfig变量有我们需要的所有数据,这些数据是通过正则表达式取出来的。

def get _ product _ info(skuId):& # 34;""获取商品信息& # 34;""info = { } url = & # 34http://item.jd.com/%s.html" % skuId headers = { & # 39;用户代理& # 39;:用户代理,& # 39;Referer & # 39: 'https://pcsitepp-fm.jd.com/',} r = requests.get(url,headers = headers)page config = re . find all(& # 34;var page config = \ {([\ S \ S]+)\ } catch \(e \)\ { \ } & # 34;,r . text)cat = re . find all(& # 34;cat: \[([\d,]+)\]& # 34;,page config[0])vender id = re . find all(& # 34;vender id:(\ d+)& # 34;,page config[0])shopId = re . find all(& # 34;shopId:& # 39;(\ d+)& # 39;",page config[0])name = re . find all(& # 34;姓名:& # 39;(.+)'",pageConfig[0])信息[& # 39;猫& # 39;]= cat[0]if len(cat)else & # 34;"信息[& # 39;venderId & # 39]= vender id[0]if len(vender id)else & # 34;"信息[& # 39;shopId & # 39]= shopId[0]if len(shopId)else & # 34;"信息[& # 39;skuId & # 39] = skuId #默认发货区域是北京信息[& # 39;区域& # 39;] = '1_72_55653_0'信息[& # 39;姓名& # 39;] = name[0]返回信息样本结果

{'猫& # 39;: '1319,1525,7057', 'venderId & # 39: '1000015389', 'shopId & # 39: '1000015389', 'skuId & # 39: '6839875', '区域& # 39;: '1_72_55653_0', '姓名& # 39;: 'Que chiaus thin C gravity尿布小号S27 (4-8kg)尿布柔软、轻薄、透气,适合新生儿使用& # 39;}{'猫& # 39;: '1319,6313,15614', 'venderId & # 39: '10109166', 'shopId & # 39: '965779', 'skuId & # 39: '50000970588', '区域& # 39;: '1_72_55653_0', '姓名& # 39;: '七彩婴儿定型枕0-1岁夏季透气天丝乳胶枕婴儿U型枕新生儿用品环保天丝枕& # 39;}{'猫& # 39;: '1319,1527,1559', 'venderId & # 39: '107952', 'shopId & # 39: '106328', 'skuId & # 39: '31295640649', '区域& # 39;: '1_72_55653_0', '姓名& # 39;: 'Babycare婴儿纸巾纸新生儿纸巾云柔毛巾婴儿纸巾108 *6包& # 39;}商品的当前价格获取商品信息后,将这些数据作为参数提交给url(https://c0.3.cn/stock)获取商品的当前价格。

def get _ product _ price(product _ info):URL = & # 34;https://c0.3.cn/stock?·斯库德= { } & area = { } & vender id = { } & buyNum = 1 & choseSuitSkuIds = { } & extra param = & fqsp = 0 & ch = 1 & callback = jQuery { } & # 34;\ .格式(product _ info[& # 39;skuId & # 39],产品信息[& # 39;区域& # 39;],产品信息[& # 39;venderId & # 39],product _ info . get(& # 39;猫& # 39;, ''),random.randint(1000000,9999999))headers = { & # 39;用户代理& # 39;:用户代理,& # 39;主持人& # 39;: 'c 0 . 3 . cn & # 39;, 'Referer & # 39: 'https://item.jd.com/{0}.html'。格式(product _ info[& # 39;skuId & # 39]),} r = session.get (URL,headers = headers)data = parse _ JSON(r . text)# price price = data . get(& # 34;股票& # 34;, {}).获取(& # 34;jdPrice & # 34, {}).获取(& # 39;p & # 39,0)返回浮动(价格)可用的商品优惠券。在JD.COM购物经常有满xx减xx和满xx折扣的优惠券。如果购买商品时没有使用优惠券,可以联系客服进行价格保护。在这里拿优惠券并打印出来。

def get _ product _ coupon(product _ info,price):& # 34;""优惠券列表& # 34;""result =[]headers = { & # 39;用户代理& # 39;:用户代理,& # 39;Referer & # 39: 'https://item.jd.com/{0}.html'。格式(product _ info[& # 39;skuId & # 39]),} url = & # 39https://cd.jd.com/promotion/v2?回调= jQuery { } & skuId = { } & area = { } & shopId = { } & vender id = { } & cat = { } & isCanUseDQ = 1 & isCanUseJQ = 1 & platform = 0 & org type = 2 & JD price = { } & appid = 1 & _ = { } & # 39;\ .format(str(random . randint(1000000,9999999))、product _ info[& # 39;skuId & # 39],产品信息[& # 39;区域& # 39;],产品信息[& # 39;shopId & # 39],产品信息[& # 39;venderId & # 39],产品信息[& # 39;猫& # 39;].替换(& # 39;,', '% 2C & # 39)、price、str(int(time . time()* 1000)))r = session . get(URL,headers = headers)data = parse _ JSON(r . text)pickOneTag = data . get(& # 34;舞会& # 34;, {}).获取(& # 34;pickOneTag & # 34)#完全还原if pick onetag:for pick onetag:result . append(tag . get(& # 39;内容& # 39;))# discount SKU coupon = data . get(& # 39;skuCoupon & # 39)if SKU coupon:for coupon in SKU coupon:if coupon . get(& # 39;allDesc & # 39):result . append(coupon . get(& # 39;allDesc & # 39))elif coupon . get(& # 39;配额& # 39;)和coupon . get(& # 39;折扣& # 39;):result . append(& # 34;男人& # 34;+str(coupon . get(& # 39;配额& # 39;)) + '减& # 39;+str(coupon . get(& # 39;折扣& # 39;)))返回结果的样本结果

['每满199元可立减100元现金,最多立减1000元& # 39;, '3件,总价5折& # 39;, '满105.0减5.0 & # 39;]订单价格这里已经获取了商品的现价、优惠券、购买数量,还需要获取剩余订单的订单价格。这个价格是第一张图中的金额。我们使用订单号和sku号作为参数来批量查询订单价格。

def get _ price _ list(pin):& # 39;''获取订单价格、商品信息、当前价格和数量& # 39;''Product_list = [] #获取商品的订单号、sku和数量,查询orderpriceparam,count _ dir = get _ order _ list (pin) #获取购买价格params = { & # 34queryOrderPriceParam & # 34:JSON . dumps(queryOrderPriceParam)} r = session . post(& # 34;https://site PP-FM . JD . com/rest/web server/getOrderListSkuPrice & # 34;,data = params)order list = r . JSON()for item in order list:skuid = item . get(& # 34;skuid & # 34)buyingjdprice = item . get(& # 34;buyingjdprice & # 34)orderid = item . get(& # 34;订单编号& # 34;)#产品信息product _ info = get _ product _ info(skuid)#当前价格= get _ product _ price(product _ info)# coupon coupon = get _ product _ coupon(product _ info,price)name = product _ info[& # 39;姓名& # 39;]count = count _ dir[orderid+& # 39;_'+SKU id]product _ list . append({ & # 39;订单编号& # 39;:orderid,& # 39;姓名& # 39;:名称,& # 39;价格& # 39;:价格,& # 39;优惠券& # 39;:优惠券,& # 39;伯爵& # 39;:计数,& # 39;buyingjdprice & # 39:buyingjdrice})返回product _ list示例结果

[{'订单编号& # 39;: '123539553604', '姓名& # 39;: 'Que chiaus thin C gravity尿布小号S27 (4-8kg)尿布柔软、轻薄、透气,适合新生儿使用& # 39;, '价格& # 39;: 27.9, '优惠券& # 39;: ['打折买一件热销商品& # 39;, '满105.0减5.0 & # 39;, '满199减50 & # 39;, '满268减60 & # 39;], '伯爵& # 39;: '4', 'buyingjdprice & # 39: 27.0}, {'订单编号& # 39;: '123474129967', '姓名& # 39;: '七彩婴儿定型枕0-1岁夏季透气天丝乳胶枕婴儿U型枕新生儿用品环保天丝枕& # 39;, '价格& # 39;: 69.0, '优惠券& # 39;: ['6月16日00:00,该商品参加跨店满减活动。如果有2件,总价打8折。3件,总价7折& # 39;, '98减5 & # 39;, '满105.0减5.0 & # 39;, '178减10 & # 39;], '伯爵& # 39;: '1', 'buyingjdprice & # 39:66.0}]申请价保最后一步是比价,申请价保。这里有两种情况,一种是目前无法使用优惠券可以直接申请价格保护,另一种是目前有优惠券,可以打印到控制台通知用户。

def protect _ protect _ apply(product _ list):& # 34;""申请价格保护& # 34;""如果len(product_list) == 0:返回else:for item in product _ list:result = & # 39;订单号:{},名称:{},数量:{},购买价格:{},现价:{},当前报价:{}。'\ .格式(项目[& # 39;订单编号& # 39;],项目[& # 39;姓名& # 39;],项目[& # 39;伯爵& # 39;],项目[& # 39;buyingjdprice & # 39],项目[& # 39;价格& # 39;], '| '。加入(item[& # 39;优惠券& # 39;])) #无息票且购买价格高于当前价格,如果借出(item[& # 39;优惠券& # 39;]) == 0和item[& # 39;buyingjdprice & # 39]& gt;项目[& # 39;价格& # 39;]:URL = & # 39;https://pcsitepp-FM . JD . com//rest/price pro/skupprotectapply & # 39;data = { & # 34订单编号& # 34;:item[& # 39;订单编号& # 39;], "订单类别& # 34;: "其他& # 34;, "skuId & # 34:item[& # 39;skuId & # 39], "退款类型& # 34;:1 } headers = { & # 39用户代理& # 39;:用户代理,& # 39;Referer & # 39: 'https://pcsitepp-fm.jd.com/',& # 39;接受& # 39;: 'application/json,text/javascript,*/*;q = 0.01 & # 39} session.post(url,data=data,header = headers)print(result+& # 39;您已经申请了价格保护。请查看价格保护页面查看结果& # 39;)elif len(item[& # 39;优惠券& # 39;])& gt;0:打印(结果+& # 39;优惠券尚未申请自动价格保护。请联系客服申请& # 39;)返回样本结果

订单号:123539553604,名称:雀氏chiaus薄C重力纸尿裤小S27 (4-8kg)纸尿裤柔软轻薄透气适合新生儿,数量:4个,进价:27.0,现价:27.9,现优惠:买1片可换一款热销产品|满105.0减5.0 |满199减50。如果优惠券没有申请自动价格保护,请联系客服申请订单号:123474129967,名称:七彩博士宝宝塑形枕0-1岁夏季透气天丝乳胶枕宝宝U型枕新生儿用品绿色天丝枕,起订量:1个,进价:66.0,现价:69.0,现价优惠:6月16日00:00。该商品将参加跨店满减活动。3件,总价7折|满98减5 |满105.0减5.0 |满178减10。优惠券尚未申请自动价格保护。请联系客服申请JD.COM自动价保脚本核心代码汇总。可以根据自己的需要修改代码。例如,添加计划任务、发送邮件而不是打印等等。感兴趣的伙伴可以关注私信获取源代码!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/329217.html

发表回复

登录后才能评论