兩個cookie的合並


這里為什么會想到這個問題呢?

    1.我們在對一個商品下訂單之前需要2個步驟,1---登錄,2---加入購物車

    2.那么我們到底是用哪一個cookie呢?實際測試的時候,

        a.發現只用了登錄cookie,提示沒有找到商品

        b.只用了加入購物車的cookie,提示沒有登錄(登錄超時或其他)

 

所以這就需要加入2個cookie了。怎么才能同時加2個cookie,這里就考慮到了cookie的合並

我們以動物園為例:      

      url = 'https://www.shwzoo.com/tools/submit_ajax.ashx'

登錄參數:  params = {"action":"user_login"}

加入購物車參數:params_buy = {"action":"cart_goods_buy"}

下訂單參數:params_order = {"action":"order_save"}

默認headers:headers = {    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"   }

 

登錄需要data:payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"txtUserName\"\r\n\r\n賬號\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"txtPassword\"\r\n\r\n密碼\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

 

首先我們獲取登錄cookies:

#登錄
res = requests.post(url,headers=accept,data=payload,params=params)
cookies = dict(res.cookies)     #登錄cookies

然后我們獲取加入購物車cookies:

#加入購物車
res_buy = requests.post(url=url,params=params_buy,data=data_buy,cookies=cookies)
cookies_buy = dict(res_buy.cookies)   #購買cookies

合並cookie:

cookies_all = dict(cookies,**cookies_buy)       #下訂單時,需要所有的cookie,不然你怎么知道有沒有登錄,有沒有加入購物車
#這里發現cookie的用法和dict很類似所有用了這種辦法

然后我們下訂單就可以成功了:

#下訂單
res_order = requests.post(url=url,params=params_order,data=data_order,cookies=cookies_all)
print(res_order.text)

返回res.text:    {"status":1, "url":"/payment.aspx?order_no=B19021818004848578304", "msg":"恭喜您,訂單已成功提交!"}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM