python介面自動化10-token登入

來源:互聯網
上載者:User

標籤:ref   rtm   ajp   css3   php   std   sem   iad   ax1   

前言

有些登入不是用cookie來驗證的,是用token參數來判斷是否登入。

token傳參有兩種一種是放在要求標頭裡,本質上是跟cookie是一樣的,只是換個單詞而已;另外一種是在url請求參數裡,這種更直觀。

 

一、登入返回token

1.如的這個登入,無cookies

2.但是登入成功後有返回token

 

二、要求標頭帶token

1.登入成功後繼續操作其它頁面,發現post請求的要求標頭,都會帶token參數

2.這種請求其實比cookie更簡單,直接把登入後的token放到頭部就行

 

三、token關聯

1.用指令碼實現登入,擷取token參數,擷取後傳參到要求標頭就可以了

2.如果登入有驗證碼,前面的指令碼登入步驟就省略了,自己手動登入後擷取token

# coding:utf-8
import requests

header = {   # 登入抓包擷取的頭部
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
        "Accept-Encoding": "gzip, deflate",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Requested-With": "XMLHttpRequest",
        "Content-Length": "423",
        "Connection": "keep-alive"
        }

body = {"key1": "value1",
        "key2": "value2"}  # 這裡帳號密碼就是抓包的資料

s = requests.session()
login_url = "http://xxx.login"   # 自己找帶token網址
login_ret = s.post(login_url, headers=header, data=body)
# 這裡token在返回的json裡,可以直接提取
token = login_ret.json()["token"]

# 這是登入後發的一個post請求
post_url = "http://xxx"
# 添加token到要求標頭
header["token"] = token
# 如果這個post請求的頭部其它參數變了,也可以直接更新
header["Content-Length"]="9"
body1 = {
         "key": "value"
         }
post_ret = s.post(post_url, headers=header, data=body1)
print post_ret.content

 對python介面自動化有興趣的,可以加python介面自動化QQ群:226296743

也可以關注下我的個人公眾號:

python介面自動化10-token登入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.