前言python
有些登陸不是用cookie來驗證的,是用token參數來判斷是否登陸。json
token傳參有兩種一種是放在請求頭裏,本質上是跟cookie是同樣的,只是換個單詞而已;另一種是在url請求參數裏,這種更直觀。cookie
1、登陸返回tokensession
1.以下圖的這個登陸,無cookiesapp
2.可是登陸成功後有返回tokenpost
2、請求頭帶tokenurl
1.登陸成功後繼續操做其它頁面,發現post請求的請求頭,都會帶token參數spa
2.這種請求其實比cookie更簡單,直接把登陸後的token放到頭部就行code
3、token關聯orm
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接口自動化完整版-------------------------
全書購買地址 https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695
做者:上海-悠悠 QQ交流羣:588402570
也能夠關注下個人我的公衆號: