在頁面上抓包,該登錄接口有如下參數:
第一個坑:
https請求需要加verify=False
requests.post(url,data,verify=False)
第二個坑:
沒注意傳參格式,用json傳參請求接口,接口返回原始登錄頁面,為啥傳參格式不對接口沒報錯呢,因為該接口沒有接收到參數時也可調通。。。
實際接口要求參數格式為x-www-form-urlencoded
第三個坑:
傳參格式正確之后,postman調用接口一直no-response,python代碼調用一直返回服務器積極拒絕,懷疑是傳的參數的內容有問題
經過多次抓包分析,發現傳參的lt和execution字段是在實時變化的,抓包發現網頁上登錄時,瀏覽器在請求登錄接口前,調用了一次get登陸頁面,調用接口返回的是登陸頁面的html,里面就可以解析出lt參數和execution參數
第四個坑:
取出lt參數和execution參數后,調用登錄接口還是返回服務器積極拒絕
通過一通搜索+請教同事,發現調用get登陸頁面獲取參數和調用登錄接口這兩步操作,需要進行session保持,
實例化一個requests.session()對象,使用該對象的get和post方法來調用接口即可
實例如下:
至此,才終於調通了這個破登錄接口!!!